【问题标题】:Mysql insert foreign keyMysql插入外键
【发布时间】:2020-02-28 10:31:10
【问题描述】:

我对如何插入外键的值感到困惑。

CREATE TABLE Cities (
    name        VARCHAR(20),
    state_name  VARCHAR(20),

    PRIMARY KEY (name, state_name),
    FOREIGN KEY (state_name) REFERENCES States(name),
);

如何在表格中插入值,城市?(我已经在表格状态中插入了值)

【问题讨论】:

  • 您插入 - 您在插入城市时遇到问题吗?

标签: mysql sql key


【解决方案1】:

您应该将表设计为使用ids。表格应该看起来更像这样:

create table states (
    state_id int auto_increment primary key,
    name varchar(255),
    unique (name)
);

create table cities (
    city_id int auto_increment primary key,
    name varchar(255),
    state_id int,
    unique (name, state_id),
    foreign key (state_id) references states(state_id),
);

然后你可以像这样填充表格:

insert into states (name)
    values ('New Mexico');

insert into cities (name)
    select 'Truth or Consequences', s.state_id
    from states s
    where s.name = 'New Mexico';

【讨论】:

    【解决方案2】:

    您可以像往常一样将值插入namestate_name 列。但state_name 值需要在Statesname 列中。例如:

    INSERT INTO Cities (name, state_name)
    VALUES ('Springfield', 'Illinois');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      • 2011-01-26
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多