无法为具有值和外键的表插入行

发布于 2025-01-10 13:18:36 字数 714 浏览 3 评论 0原文

我是 SQL 初学者,目前陷入困境。所以我尝试在 admin 中插入 3 行,效果很好。现在我想在 data_center 中插入 3 行数据,但是运行时出现错误“关系“data_center”的列“name”不存在”有人可以解释一下发生了什么吗?提前致谢

CREATE TABLE admin
(
    username VARCHAR unique,
    PRIMARY KEY (username)
);

CREATE TABLE data_center
(
    name VARCHAR,
    username VARCHAR,
    capacity INT NOT NULL
        CHECK (capacity > 0 AND capacity < 20000),
    PRIMARY KEY (name),
    FOREIGN KEY (username) REFERENCES admin(username)
);

INSERT INTO admin (username)
VALUES ('Alan'), ('Bob'), ('Lea');
    
INSERT INTO data_center (name, username,capacity)
VALUES ('Alan Johnson'   'Alan'   '4000'),
       ('Bob Lane'   'Bob'   '2000'),
       ('Lea Larsson'   'Lea'   '6000');

I am a beginner in SQL and I am currently stuck on something. So I tried to insert 3 rows in admin and it worked fine. Now I want to insert 3 rows of data in data_center however when running it I got an error "column "name" of relation "data_center" does not exist" can someone explain what's happening? Thanks in advance

CREATE TABLE admin
(
    username VARCHAR unique,
    PRIMARY KEY (username)
);

CREATE TABLE data_center
(
    name VARCHAR,
    username VARCHAR,
    capacity INT NOT NULL
        CHECK (capacity > 0 AND capacity < 20000),
    PRIMARY KEY (name),
    FOREIGN KEY (username) REFERENCES admin(username)
);

INSERT INTO admin (username)
VALUES ('Alan'), ('Bob'), ('Lea');
    
INSERT INTO data_center (name, username,capacity)
VALUES ('Alan Johnson'   'Alan'   '4000'),
       ('Bob Lane'   'Bob'   '2000'),
       ('Lea Larsson'   'Lea'   '6000');

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兔姬 2025-01-17 13:18:36
  1. 记录中的值需要用逗号分隔。

  2. 容量是整数

    INSERT INTO data_center (name, username, capacity)
    VALUES  ('Alan Johnson', 'Alan', 4000),
            ('Lea Lane', 'Lea', 2000),
            ('Edward Larsson', 'Edward', 6000);
  1. Edward不在admin表中。爱德华在编辑之间变成了Lea
  1. Values in record need to be comma separated.

  2. Capacity is integer value

    INSERT INTO data_center (name, username, capacity)
    VALUES  ('Alan Johnson', 'Alan', 4000),
            ('Lea Lane', 'Lea', 2000),
            ('Edward Larsson', 'Edward', 6000);
  1. Edward is not in admin table. Edward became Lea between edits.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文