我是编码方面的新手,所以我在 SQL Server 中创建了一个表并且它起作用了,所以我在 H2 中使用了相同的命令,它说我的第二个表有语法问题,有人可以帮忙吗?
CREATE TABLE TOURISTINFO(
TOURISTINFO_ID INT PRIMARY KEY,
NAME VARCHAR(25) NOT NULL,
NATIONALITY VARCHAR(15) NOT NULL
)
CREATE TABLE PLANETICKETS(
DESTINATION VARCHAR(10) NOT NULL,
TICKETPRICE NUMERIC(8,2) NOT NULL,
TOURISTINFO_ID INT FOREIGN KEY REFERENCES TOURISTINFO
)
错误是
Syntax error in SQL statement "CREATE TABLE PLANETICKETS(
DESTINATION VARCHAR(10) NOT NULL,
TICKETPRICE NUMERIC(8,2) NOT NULL,
TOURISTINFO_ID INT FOREIGN[*] KEY REFERENCES TOURISTINFO
)"; expected "(, FOR, UNSIGNED, NOT, NULL, AS, DEFAULT, GENERATED, NOT, NULL, AUTO_INCREMENT, BIGSERIAL, SERIAL, IDENTITY, NULL_TO_DEFAULT, SEQUENCE, SELECTIVITY, COMMENT, CONSTRAINT, PRIMARY, UNIQUE, NOT, NULL, CHECK, REFERENCES, ,, )"; SQL statement:
CREATE TABLE PLANETICKETS(
DESTINATION VARCHAR(10) NOT NULL,
TICKETPRICE NUMERIC(8,2) NOT NULL,
TOURISTINFO_ID INT FOREIGN KEY REFERENCES TOURISTINFO
) [42001-173] 42001/42001
最佳答案
两步过程
- 创建没有外键的表
CREATE TABLE PLANETICKETS(
DESTINATION VARCHAR(10) NOT NULL,
TICKETPRICE NUMERIC(8,2) NOT NULL,
TOURISTINFO_ID INT
)
- 添加外键约束
ALTER TABLE PLANETICKETS
ADD FOREIGN KEY (TOURISTINFO_ID)
REFERENCES TOURISTINFO(TOURISTINFO_ID)
一步法
CREATE TABLE PLANETICKETS(
DESTINATION VARCHAR(10) NOT NULL,
TICKETPRICE NUMERIC(8,2) NOT NULL,
TOURISTINFO_ID INT,
foreign key (TOURISTINFO_ID) references touristinfo(TOURISTINFO_ID)
)
关于sql - 在 H2 数据库中定义外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41515563/