KingbaseES创建外键与Mysql的差异

Mysql

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.23    |
+-----------+
1 row in set (0.00 sec)

mysql> create table dept (deptno int ,dname varchar(10),loc varchar(100));
Query OK, 0 rows affected (2.00 sec)

mysql> alter table dept add constraint pk_dept primary key(deptno,dname);
Query OK, 0 rows affected (0.22 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> create table emp (id int, ename varchar(10),sal int ,deptno int);
Query OK, 0 rows affected (0.23 sec)

mysql> alter table emp add constraint pk_emp primary key (id,ename);
Query OK, 0 rows affected (0.26 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno);
Query OK, 0 rows affected (0.71 sec)
Records: 0  Duplicates: 0  Warnings: 0

KingbaseES mysql模式

test=# show database_mode;
 database_mode
---------------
 mysql
(1 行记录)

test=# create table dept(deptno int,dname varchar(10),location varchar(20));
CREATE TABLE
test=# create table emp (empno int,ename varchar(10),deptno int );
CREATE TABLE
test=# alter table dept add constraint pk_dept primary key(deptno,dname);
ALTER TABLE
test=# alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno);
错误:  没有 unique constraint 匹配引用的表 “dept” 的给定键
test=# create unique index dept_uq_deptno on dept(deptno);
CREATE INDEX
test=# alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno);
错误:  没有 unique constraint 匹配引用的表 “dept” 的给定键

test=# drop table dept;
DROP TABLE
test=# create table dept(deptno int,dname varchar(10),location varchar(20));
CREATE TABLE
test=# alter table dept add constraint pk_dept primary key(deptno);
ALTER TABLE
test=# alter table emp add constraint fk_deptno foreign key (deptno) references dept(deptno);
ALTER TABLE

当父表主键是复合键时,mysql子表创建外键约束支持在父表主键中的一个字段作为外键参考,KingbaseES不支持。

posted @   KINGBASE研究院  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示