create table frontend_employee(
employee_id int primary key,
employee_name varchar(50),
employee_role varchar(50),
employee_sarlary int default 25000,
employee_boss_id int unique,
foreign key(employee_boss_id) references frontend_boss(boss_id)
);
如您所见,我没有为该 UNIQUE 约束提供任何 ID 为了给该约束提供 ID,我应该使用另一种方法,即
create table frontend_employee(
employee_id int primary key,
employee_name varchar(50),
employee_role varchar(50),
employee_sarlary int default 25000,
employee_boss_id int,
CONSTRAINT UC_employee UNIQUE (employee_boss_id),
foreign key(employee_boss_id) references frontend_boss(boss_id)
);
我已经尝试了 Google 上提供的所有方法 但它们都需要约束的名称,但我没有为 UNIQUE 约束指定任何名称 我找不到任何方法来从该列中删除该唯一约束
网上查询:-
ALTER TABLE table_name DROP CONSTRAINT unique_constraint;
在您的情况下,您不能仅删除唯一约束,因为外键约束中需要它。您还必须删除外键约束。 考虑以下数据示例
create table frontend_boss(
boss_id int unique );
create table frontend_employee(
employee_id int primary key,
employee_name varchar(50),
employee_role varchar(50),
employee_sarlary int default 25000,
employee_boss_id int unique,
foreign key(employee_boss_id) references frontend_boss(boss_id) );
show create table frontend_employee;
CREATE TABLE `frontend_employee` (
`employee_id` int(11) NOT NULL,
`employee_name` varchar(50) DEFAULT NULL,
`employee_role` varchar(50) DEFAULT NULL,
`employee_sarlary` int(11) DEFAULT 25000,
`employee_boss_id` int(11) DEFAULT NULL,
PRIMARY KEY (`employee_id`),
UNIQUE KEY `employee_boss_id` (`employee_boss_id`),
CONSTRAINT `frontend_employee_ibfk_1` FOREIGN KEY (`employee_boss_id`) REFERENCES `frontend_boss` (`boss_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ;
唯一约束具有自动生成的名称
employee_boss_id
掉落
alter table frontend_employee drop constraint employee_boss_id;
删除唯一约束和外键
alter table frontend_employee drop constraint employee_boss_id, drop constraint frontend_employee_ibfk_1;
Query OK, 0 rows affected (0.045 sec)
Records: 0 Duplicates: 0 Warnings: 0
show create table frontend_employee;
CREATE TABLE `frontend_employee` (
`employee_id` int(11) NOT NULL,
`employee_name` varchar(50) DEFAULT NULL,
`employee_role` varchar(50) DEFAULT NULL,
`employee_sarlary` int(11) DEFAULT 25000,
`employee_boss_id` int(11) DEFAULT NULL,
PRIMARY KEY (`employee_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;