mysql - 如何从 MySQL 中的现有表创建另一个表?

标签 mysql sql database datatable mysql-workbench

我有一个名为 UserInfo 的表,如下所示:

Userid     Job     Age
John       A       35
Sarah      B       27

我想创建另一个类似的表,称为 UserScores (分数为空):

Userid     Score
John       
Sarah      

其中 userid 列与其他表完全相同。我该如何使用 SQL 来做到这一点?这是我尝试过的:

CREATE TABLE UserScores AS
    SELECT userid, score
    FROM user

这是我的错误消息: enter image description here

我还需要将用户 ID 作为我的 UserScores 表中的主键。我该怎么做?提前致谢。

最佳答案

您将 NULL 作为值添加到分数,如下所示,并在创建表 userscores 后添加 promary kley

CREATE TABLE user (userid INT)
INSERT INTO user VALUES (1)
CREATE TABLE UserScores AS
    SELECT userid, NULL AS score
    FROM user
ALTER TABLE UserScores
ADD PRIMARY KEY (userid); 

db<> fiddle here

编辑

您还应该在创建中定义分数类型

CREATE TABLE UserScores (userid  int, scrore int) AS
    SELECT userid, NULL AS score
    FROM user

关于mysql - 如何从 MySQL 中的现有表创建另一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66824295/

相关文章:

php - 如何从组件发送和获取数据到php? ionic 2

python - Python 2.7 中的 MySQL STR_TO_DATE "Incorrect date value"

c# 多对多关系代码首先没有流畅的 API

javascript - IBM Worklight - 无法显示使用 SQL 适配器检索的数据

mysql - SQL/SAP HANA SQL 数据类型

PHP电子商务系统

MySQL 连接 3 个表 - 从 2 个子表中获取聚合值

sql - 在 GROUP BY 查询中返回多列

java - JDBC 中 SQL 更新查询出错

java - 以编程方式检查java中服务器的可达性