SQL创建表完整性约束顺序

SQL创建表完整性约束顺序,sql,Sql,在SQL中使用“CREATETABLE”命令时,完整性约束是否有特定的顺序?完整性约束指的是“非空”、“检查”、“唯一”等 非常感谢。不,约束的顺序不重要。SQL是一种声明性语言,所以一般来说,您在语法方面会有一些回旋余地 注意 不过有一个警告。您还没有指定RDBMS,所以我回答了SQL作为ANSI标准语言的问题。某些实现可能会强加一些规则 例如,以下内容在MySQL、PostgreSQL、MS SQL Server、Oracle SQL中有效: CREATE TABLE Test( Col

在SQL中使用“CREATETABLE”命令时,完整性约束是否有特定的顺序?完整性约束指的是“非空”、“检查”、“唯一”等


非常感谢。

不,约束的顺序不重要。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的说明!