我尝试在oracle中使用约束名称创建表,并且成功,在mysql中尝试时,出现#1064错误。
这是我的代码:
create table penerbit(
id_penerbit char(3) constraint id_pk PRIMARY KEY,
nama_penerbit varchar(100) constraint nama_nn NOT NULL
);
最佳答案
在MySQL中,您不需要使用“约束”一词。因此,以下内容在Oracle和MySQL中均应起作用:
create table penerbit(
id_penerbit char(3) PRIMARY KEY,
nama_penerbit varchar(100) NOT NULL
);
注意事项:Oracle比
varchar2()
更喜欢varchar()
。如果要命名约束,则可以在两个数据库中为主键添加一个单独的声明:
create table penerbit (
id_penerbit char(3),
nama_penerbit varchar(100) NOT NULL,
constraint id_pk primary key (id_penerbit)
);
或者您可以在线进行:
create table penerbit (
id_penerbit char(3) constraint id_pk primary key,
nama_penerbit varchar(100) NOT NULL
);
我不认为MySQL可以让您命名
NOT NULL
约束,尽管Oracle可以。关于mysql - 如何在MySQL中使用约束名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46252067/