SQL创建表完整性约束顺序
在SQL中使用“CREATETABLE”命令时,完整性约束是否有特定的顺序?完整性约束指的是“非空”、“检查”、“唯一”等SQL创建表完整性约束顺序,sql,Sql,在SQL中使用“CREATETABLE”命令时,完整性约束是否有特定的顺序?完整性约束指的是“非空”、“检查”、“唯一”等 非常感谢。不,约束的顺序不重要。SQL是一种声明性语言,所以一般来说,您在语法方面会有一些回旋余地 注意 不过有一个警告。您还没有指定RDBMS,所以我回答了SQL作为ANSI标准语言的问题。某些实现可能会强加一些规则 例如,以下内容在MySQL、PostgreSQL、MS SQL Server、Oracle SQL中有效: CREATE TABLE Test( Col
非常感谢。不,约束的顺序不重要。SQL是一种声明性语言,所以一般来说,您在语法方面会有一些回旋余地 注意 不过有一个警告。您还没有指定RDBMS,所以我回答了SQL作为ANSI标准语言的问题。某些实现可能会强加一些规则 例如,以下内容在MySQL、PostgreSQL、MS SQL Server、Oracle SQL中有效:
CREATE TABLE Test(
ColumnA INT NOT NULL UNIQUE,
ColumnB INT UNIQUE NOT NULL,
ColumnC INT NOT NULL CHECK (ColumnC > 0)
);
但以下几点会让MySQL不高兴,而其他的则可以:
CREATE TABLE Test(
ColumnA INT NOT NULL UNIQUE,
ColumnB INT UNIQUE NOT NULL,
ColumnC INT CHECK (ColumnC > 0) NOT NULL -- MySQL does not like this!!
);
博士后对他们都很好。太棒了,谢谢你的快速回复和关于不同RDBMS的说明!