给约束加名字是什么意思,有什么用

时间:2022-11-08 02:43:30
CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(40),
    CONSTRAINT pk_dname PRIMARY KEY(dname)
);

CONSTRAINT 没影响到 select *语句,select*还是原来的名字

7 个解决方案

#1


约束加名字,也可以不加名字,如果不加名字,系统会用一个默认的名字来创建约束。

也就是说,不管你加不加名字,都是有一个约束的名字的,之后,你可以用这个约束的名字,来吧约束删除。

比如:

alter table xxx
drop constraint 约束名称

#2


引用 1 楼 yupeigu 的回复:
alter table xxx
drop constraint 约束名称

这样创建表,这样删除,咋报错呢。

CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(40),
    CONSTRAINT pk_dname_deptno PRIMARY KEY (deptno, dname)
);

给约束加名字是什么意思,有什么用

#3


引用 1 楼 yupeigu 的回复:
alter table xxx
drop constraint 约束名称

给约束加名字是什么意思,有什么用

#4


引用 3 楼 xiaoyuanyuan2009 的回复:
Quote: 引用 1 楼 yupeigu 的回复:

alter table xxx
drop constraint 约束名称

给约束加名字是什么意思,有什么用


把当中的分号去掉试试

#5


引用 4 楼 yupeigu 的回复:
把当中的分号去掉试试

给约束加名字是什么意思,有什么用

#6


约束名称 是一个约束条件的名称,不是列的名称。

#7


引用 5 楼 xiaoyuanyuan2009 的回复:
Quote: 引用 4 楼 yupeigu 的回复:

把当中的分号去掉试试

给约束加名字是什么意思,有什么用


不好意思,刚才试了一下,mysql如果要删除这个主键约束,语法和其他数据库都不一样,的这样:

ALTER TABLE t_dept
DROP PRIMARY KEY

#1


约束加名字,也可以不加名字,如果不加名字,系统会用一个默认的名字来创建约束。

也就是说,不管你加不加名字,都是有一个约束的名字的,之后,你可以用这个约束的名字,来吧约束删除。

比如:

alter table xxx
drop constraint 约束名称

#2


引用 1 楼 yupeigu 的回复:
alter table xxx
drop constraint 约束名称

这样创建表,这样删除,咋报错呢。

CREATE TABLE t_dept(
    deptno INT,
    dname VARCHAR(20),
    loc VARCHAR(40),
    CONSTRAINT pk_dname_deptno PRIMARY KEY (deptno, dname)
);

给约束加名字是什么意思,有什么用

#3


引用 1 楼 yupeigu 的回复:
alter table xxx
drop constraint 约束名称

给约束加名字是什么意思,有什么用

#4


引用 3 楼 xiaoyuanyuan2009 的回复:
Quote: 引用 1 楼 yupeigu 的回复:

alter table xxx
drop constraint 约束名称

给约束加名字是什么意思,有什么用


把当中的分号去掉试试

#5


引用 4 楼 yupeigu 的回复:
把当中的分号去掉试试

给约束加名字是什么意思,有什么用

#6


约束名称 是一个约束条件的名称,不是列的名称。

#7


引用 5 楼 xiaoyuanyuan2009 的回复:
Quote: 引用 4 楼 yupeigu 的回复:

把当中的分号去掉试试

给约束加名字是什么意思,有什么用


不好意思,刚才试了一下,mysql如果要删除这个主键约束,语法和其他数据库都不一样,的这样:

ALTER TABLE t_dept
DROP PRIMARY KEY