SQL 教程,SQL 在线

2588SQL PRIMARY KEY

撤销PRIMARY KEY约束时,不论约束条件为一列还是多列,对于MySQL,撤销都是

ALTER TABLE Persons
DROP PRIMARY KEY

由于PRIMARY KEY唯一性,MYSQL处理办法简单。

但对于 SQL Server / Oracle / MS Access, 一个列

ALTER TABLE Persons
DROP CONSTRAINT P_Id

若起约束名,也可如下多个列

ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

2587SQL UNIQUE

uc_PersonID 是一个约束名 !上面建的是唯一约束,为了方便区别约束名一般起得有规律点比如 UC(就是 UNIQUE CONSTRAINT 的缩写意思是唯一约束) uc_PersonID 就是对表中的PersonID 建唯一约束,强制约束 Id_P 和 LastName 唯一。

2586SQL UNIQUE

sql server 2008 删除约束的语句

alter table table_name drop constraint_name;

2585SQL UNIQUE

create table tb2(
    tb2_id int unique,
    tb2_name varchar(20),
    tb2_age int,
    unique(tb2_name)
);
select * from tb2;
insert into tb2(tb2_id,tb2_name,tb2_age) values (1,'张三',20);
--违反唯一约束
insert into tb2 values(2,'张三',25);
--建表时,创建约束,有约束名
create table tb3(
    tb3_id int ,
    tb3_name varchar(20),
    tb3_age int,
    constraint no_id unique (tb3_id)
);
insert into tb3 values (1,'张三',20);
insert into tb3(tb3_id,tb3_age) values(2,24);
select * from tb3;
--已经有了tb3_id为1的行记录,再次插入,违反唯一约束
insert into tb3(tb3_id,tb3_name,tb3_age) values(1,'李四',25);
--给tb3表添加主键约束,主键名为:pk_id
alter table tb3 add constraint pk_id primary key (tb3_id);
--给tb3_name添加唯一约束
alter table tb3 add constraint un_name unique (tb3_name);
--已存在姓名为张三的记录,违反唯一约束
insert into tb3 values (3,'张三',26);
--mysql 删除约束的语句,使用index,oracle SqlServer等使用constraint
alter table tb3 drop index un_name;
--删除约束后,允许存在多个tb3_name为张三的记录
insert into tb3 values (3,'张三',26);

2584SQL 约束

PRIMARY KEY 约束的实例

CREATE TABLE Persons
(
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    PRIMARY KEY (Id_P)  //PRIMARY KEY约束
)
CREATE TABLE Persons
(
    Id_P int NOT NULL PRIMARY KEY,   //PRIMARY KEY约束
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
)