【问题标题】:Declaring foreign key in Apache Derby database在 Apache Derby 数据库中声明外键
【发布时间】:2014-06-27 13:49:52
【问题描述】:

我正在使用带有 ij 10.10 的 Apache Derby 数据库。

我有两张桌子。第一个是usertable,第二个是logintable。 在我的usertable 中有两列:useridname。 我的logintable 表有两列:useridpassword。 我需要在logintable 中设置一列作为外键,其中主键在usertable 中。

我使用以下命令创建表:

create table usertable (userid varchar(10) primary key, name varchar(20));

如何编写logintable 以将userid 设置为引用上述主键的外键?

谁能帮帮我?

【问题讨论】:

    标签: database derby


    【解决方案1】:

    我认为您正在寻找 FOREIGN KEY 约束语法:http://db.apache.org/derby/docs/10.10/ref/rrefsqlj13590.html

    更具体地说,REFERENCES 语法:http://db.apache.org/derby/docs/10.10/ref/rrefsqlj16357.html#rrefsqlj16357

    因此,当您创建“登录表”时,在 CREATE TABLE 语句中的某个时刻,您将拥有类似以下内容:

     CONSTRAINT login_userid_ref FOREIGN KEY (userid) REFERENCES usertable(userid)
    

    请注意,SQL 语言有多种替代语法样式来声明引用完整性约束,例如:例如,您可以使用更简单的语法,最终结果如下:

    create table logintable(
        userid varchar(10) references usertable(userid),
        password varchar(20));
    

    【讨论】:

    • 我使用以下语句来创建带有外键 create table logintable(userid varchar(10) references usertable(userid),password varchar(20)); 的登录表,这很有效。谢谢你的提示。
    • @rainu - 你的表格创建对我有用,我会重新创建你的评论作为答案
    • @rainu 我将您建议的语法编辑为答案——谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 2016-02-02
    • 1970-01-01
    • 2012-09-21
    • 2015-03-14
    • 2012-09-21
    • 1970-01-01
    相关资源
    最近更新 更多