MySQL - 如何使用列约束声明主键?

标签 mysql sql database database-design

您好,我正在使用 MySQL,并且已在 SQL 中使用表约束声明了原子主键,这是一个不好的做法吗?

最佳答案

当你说“列约束”时,你的意思是这个吗?

CREATE TABLE `clients` (
  `id` int(11) NOT NULL auto_increment PRIMARY KEY,
  `created` datetime NOT NULL,
  `email` varchar(150) NOT NULL,
  `notes` text NOT NULL
);

它们本质上都没有什么坏处(只是语法差异)。

上面的“in column”语法稍微短一些,因此当您不关心命名约束并且 PK 仅跨越一个字段时,您会想要使用它。

相反,如果您想命名主键或其是复合键,则可以使用“表级”语法。

以下是跨越两列的命名 PK 示例:

CREATE TABLE `clients` (
  ...
  CONSTRAINT `my_primary_key` PRIMARY KEY (`id1`, `id2`)
);

关于MySQL - 如何使用列约束声明主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463117/

相关文章:

mysql - 如何创建一组一致的记录

mysql - 乱码 : json of json not work

php - Jquery 监听器在执行 load() 后不工作

mysql - 从 MYSQL 数据库中选择最有效的方法是什么,其中列的条件为 NULL,一个 userId 或 userIds 列表

mysql - 选择子查询产生结果,但如果在更新子句中使用则不会

SQL 查询有条件地连接来自不同数据库的列

mysql - 如何更新这个?

SQL group by,让空值留下

从数据库中读取的 PHP 脚本

android - 检测 Realm 数据库中的更改并更新远程数据库android