Я делаю все ниже из командной строки и/или mysql>
.Как получить внешний ключ и таблицу INSERT INTO (MySQL/InnoDB)
Я новичок в БД и заметил, что в структуре (учебниках) и определениях (руководствах) есть много сайтов, но нет никаких практических примеров. Если у меня есть две таблицы, как так
CREATE TABLE IF NOT EXISTS owner
(
ID INT NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL UNIQUE,
PRIMARY KEY(ID)
)ENGINE=InnoDB
CREATE TABLE IF NOT EXISTS dog
(
ID INT NOT NULL AUTO_INCREMENT,
owner INT NOT NULL,
name VARCHAR(32) NOT NULL UNIQUE,
PRIMARY KEY(ID),
FOREIGN KEY (owner) REFERENCES owner(ID)
)ENGINE=InnoDB
И если я хочу, чтобы добавить в таблицу собаку
INSERT INTO dog (owner, name) VALUES(get_owner_ID("Peter Griffin"), "Brian Griffin");
Как получить зашифрованный идентификатор владельца от имени («Питер Гриффин»)
Прежде чем делать 'insert', вы должны сначала« выбрать »идентификатор для Peter (в зависимости от вашей бизнес-логики). – kan
@kan, где я теряюсь. Если я делаю 'select ID от владельца, где name =" Peter Griffin ", он возвращает таблицу, а не int. Как вы получаете единственное значение, и где я его «храню»? Использую ли я его как составной оператор – puk
Просто выполните два отдельных запроса - выберите и вставьте. И проверьте, возвращена ли только одна запись (это означает, что только одна запись имеет имя = «Питер»). – kan