除了在视觉上,在列定义中声明主变量还是在底部向下声明之间有功能上的区别?
例如:
CREATE TABLE tbl_name (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
content TEXT
) ENGINE=InnoDB CHARSET=utf8;
以上与以下不同:
CREATE TABLE tbl_name (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
content TEXT,
PRIMARY KEY ( id )
) ENGINE=InnoDB CHARSET=utf8;
两种语法都是等效的。
第一个使用column约束。
第二种语法使用table约束,并且在需要compound主键时非常有用,该主键引用多个列(在这种情况下,无法使用列约束)。