【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,插入时违反了主键约束。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务