【问题标题】:How do I create another table from an existing table in MySQL?如何从 MySQL 中的现有表创建另一个表?
【发布时间】:2021-06-23 17:11:52
【问题描述】:

我有一个像这样的名为 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

这是我的错误信息:

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

【问题讨论】:

  • 用户没有分数,那么mysqlm应该如何知道分数来自哪里并为主要更改表
  • @nbk,嗯,我本来打算把分数留空,我不好让我解决这个问题

标签: mysql sql database datatable mysql-workbench


【解决方案1】:

您将 NULL 作为值添加到以下分数中,并在创建表 userscores 后添加初级 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小提琴here

编辑

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

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

【讨论】:

  • 请注意,您可能希望在此之后更改分数的数据类型。我只是按照你想要的方式制作桌子,钥匙和所有东西,然后insert into UserScores (userid) select userid from user;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
  • 1970-01-01
  • 2014-12-26
  • 2021-11-02
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多