如何使用hsql创建表的外键?

时间:2017-02-10 09:59:57

标签: foreign-keys hsqldb create-table

有人可以解释一下如何在hsql中使用外键吗? 我想在一个创建表中,但工作alter table也没关系。 我在没有工具的情况下工作,只是在日食中 什么是hsql代码错了?

CREATE TABLE user(
  t_id INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 1, INCREMENT   BY   1) PRIMARY KEY,
  name VARCHAR(30),
  lastname VARCHAR(30),
  email  VARCHAR(30),  
  --FOREIGN KEY (b_id) REFERENCES bookingnumber(b_id)
);

CREATE TABLE bookingnumber (
  b_id INTEGER PRIMARY KEY
);

ALTER TABLE user
  ADD FOREIGN KEY (fk_b_id) REFERENCES bookingnumber(b_id);

2 个答案:

答案 0 :(得分:3)

也许您正在尝试将每个预订号码链接到用户。在这种情况下,每个用户可能存在多个预订号码。如果要执行此操作,请将列T_ID添加到BOOKINGNUMBER表并在此表上创建外键。

但您的陈述是将每个用户与预订号码相关联,并且没有正确的语法。它需要USER表中名为B_ID的列才能工作。语法如下:

ALTER TABLE user ADD FOREIGN KEY (b_id) REFERENCES bookingnumber(b_id);

答案 1 :(得分:0)

我面临类似的情况,这对我有帮助

CREATE TABLE child(c1 INTEGER, c2 VARCHAR, FOREIGN KEY (c1, c2) REFERENCES parent(p1, p2));

更详细的解释可以在http://www.d.umn.edu/~tcolburn/cs4531/hsqldb_docs/guide/guide.html#N102F8

中找到