【SQL235】题解 | 创建一个actor_name表
创建一个actor_name表
https://www.nowcoder.com/practice/881385f388cf4fe98b2ed9f8897846df
drop table if exists actor_name;
create table actor_name(
first_name varchar(45) NOT NULL COMMENT '名字',
last_name varchar(45) NOT NULL COMMENT '姓氏'
);
/*
或者
CREATE TABLE IF NOT EXISTS actor_name (
first_name VARCHAR(45) NOT NULL,
last_name VARCHAR(45) NOT NULL
);
*/
INSERT INTO actor_name (first_name, last_name)
SELECT first_name, last_name
FROM actor;
# 使用INSERT INTO...SELECT语句将actor表中的first_name和数据导入到actor_name表中
【易错点】
drop table if exists actor_name;
create table actor_name(
first_name varchar(45) NOT NULL COMMENT '名字',
last_name varchar(45) NOT NULL COMMENT '姓氏',
PRIMARY KEY(first_name)
);
INSERT INTO actor_name (first_name, last_name)
SELECT first_name, last_name
FROM actor;
# 上述代码是错误的,因为用PRIMARY KEY(first_name)是错误的
# 前面创建的表只有两个限制:first_name 不能为空,last_name 不能为空,但它没有要求 first_name 唯一
# 第二段会报错,是因为 PRIMARY KEY(first_name) 要求 first_name 唯一,而 actor 表里通常会有重复的 first_name,插入时违反了主键约束。

查看26道真题和解析