gpt4 book ai didi

java - Derby 中的外键约束

转载 作者:行者123 更新时间:2023-12-01 10:20:06 29 4
gpt4 key购买 nike

好吧,首先我已经在谷歌上看了几个小时,试图让我的外键约束起作用,但到目前为止还没有成功。

我将发布我尝试过的变体(基本上是我在谷歌上看到的所有变体)。

这是我的创建语句,效果很好,现在我尝试在“用户名”列上添加外键。

public final String CREATE_QUESTIONS_TABLE = "CREATE TABLE Questions(QuestionID INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,"
+ "SubmittedTime TIMESTAMP NOT NULL,"
+ "Title VARCHAR(50) NOT NULL,"
+ "Text VARCHAR(300) NOT NULL,"
+ "Username VARCHAR(10),"
+ "Rating INTEGER DEFAULT 0 NOT NULL)";

我尝试将这些添加到用户名旁边:

+ "Username VARCHAR(10) CONSTRAINT username_fk FOREIGN KEY (Username) REFERENCES Users(Username),"

+ "Username VARCHAR(10) CONSTRAINT username_fk REFERENCES Users(Username),"

还有其他一些我现在不记得了(我打开了很多标签)

我知道它不起作用,因为当我添加这些时,当我尝试从中选择时,我会得到以下内容

Schema 'USERNAME' does not exist

这意味着它没有创建表,而我试图从不存在的表中进行选择。

请帮助我告诉我需要写什么才能将列定义为另一个表的外键。

我正在尝试将表 Questions 的用户名设置为表 Users 的用户名(主键)的外键。

这是 Derby 和 Java 的结合。

最佳答案

需要首先创建“用户”表,然后创建“问题”表。

最后添加外键约束:

CREATE TABLE Questions
(
QuestionID INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
SubmittedTime TIMESTAMP NOT NULL,
Title VARCHAR(50) NOT NULL,
Text VARCHAR(300) NOT NULL,
Username VARCHAR(10),
Rating INTEGER DEFAULT 0 NOT NULL,
CONSTRAINT username_fk FOREIGN KEY (Username) REFERENCES Users(Username)
)

关于java - Derby 中的外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35651445/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com