Mysql вставить внешний ключ - PullRequest
0 голосов
/ 02 ноября 2019

Я не совсем понимаю, как вставить значения для внешнего ключа.

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

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

Как мне вставить значения в таблицу, Города? (Я уже вставил значения в таблицу State)

Ответы [ 2 ]

1 голос
/ 02 ноября 2019

Вы можете просто вставить значения в столбцы name и state_name как обычно. Но значение state_name должно быть в столбце States таблица name. Например:

INSERT INTO Cities (name, state_name)
VALUES ('Springfield', 'Illinois');
0 голосов
/ 02 ноября 2019

Вы должны разрабатывать свои таблицы для использования id s. Таблицы должны выглядеть примерно так:

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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...