我尝试在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/

10-11 03:21
查看更多