Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql H2数据库使用约束创建表_Sql_H2 - Fatal编程技术网

Sql H2数据库使用约束创建表

Sql H2数据库使用约束创建表,sql,h2,Sql,H2,我有两条SQL语句: CREATE TABLE legs(legid INT PRIMARY KEY AUTO_INCREMENT NOT NULL, playerid1 INT NOT NULL REFERENCES players(playerid), playerid2 INT NOT NULL REFERENCES players(playerid), added TIMESTAM

我有两条SQL语句:

CREATE TABLE legs(legid INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
                  playerid1 INT NOT NULL REFERENCES players(playerid),
                  playerid2 INT NOT NULL REFERENCES players(playerid),
                  added TIMESTAMP AS CURRENT_TIMESTAMP NOT NULL);

ALTER TABLE legs ADD CONSTRAINT distinct_players CHECK(playerid1 <> playerid2);
创建表腿(legid INT主键自动增量不为空,
playerid1 INT不为空引用玩家(playerid),
playerid2 INT不为空引用玩家(playerid),
将时间戳添加为当前时间戳(不为空);
改变桌腿添加约束不同的球员检查(playerid1 playerid2);
我99%确信我应该能够将它们浓缩成一个,即:

CREATE TABLE table(...
                   playerid2 INT NOT NULL REFERENCES players(playerid) CHECK(playerid1 <> playerid2),
                   ...);
创建表格(。。。
playerid2 INT NOT NULL引用玩家(playerid)检查(playerid1 playerid2),
...);
但是,我总是会遇到语法错误。好的,这就是约束的位置。

创建表腿(legid INT主键自动增量不为空,
CREATE TABLE legs(legid INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
                  playerid1 INT NOT NULL REFERENCES players(playerid),
                  playerid2 INT NOT NULL REFERENCES players(playerid),
                  added TIMESTAMP AS CURRENT_TIMESTAMP NOT NULL,
                  CHECK (playerid1 <> playerid2));
playerid1 INT不为空引用玩家(playerid), playerid2 INT不为空引用玩家(playerid), 将时间戳添加为当前时间戳NOT NULL, 检查(playerid1 playerid2));
检查约束必须全部位于表的底部,并且不能与列混合,因为检查约束可以在PostgreSQL中混合。