Skip to content

PRIMARY KEY 完整性约束

PRIMARY KEY 约束可用于确保表内的每一数据行都可以由某一个键值唯一地确定。 并且每个数据库表上最多只能定义一个 PRIMARY KEY 约束。

语法说明

> column_name data_type PRIMARY KEY;

示例

mysql> create table t1(a int primary key, b int, c int, primary key(b,c));
ERROR 20301 (HY000): invalid input: more than one primary key defined
mysql> create table t2(a int, b int, c int, primary key(b,c));
Query OK, 0 rows affected (0.01 sec)

mysql> create table t3(a int, b int, c int, primary key(a));
Query OK, 0 rows affected (0.02 sec)

mysql> insert into t2 values(1,1,1);
Query OK, 1 row affected (0.02 sec)

mysql> insert into t2 values(1,1,2);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t3 values(1,1,1);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t3 values(2,1,1);
Query OK, 1 row affected (0.01 sec)

示例解释:在上述示例中,t1 包含了两组主键,因此创建失败。t2 和 t3 只有一组主键,因此可以创建。四条插入语句都没有违反约束,均可成功执行。

限制

MatrixOne 暂不支持 alter table,所以也不支持删除 PRIMARY KEY 约束。