Как автоматизировать вставку идентификатора в дочернюю таблицу с новым идентификатором из родительского - PullRequest
0 голосов
/ 07 мая 2011

Как сделать по умолчанию вставку с id_user в дочерний user_id? Я сделаю сразу обновление без дополнительного выбора и вставлю в мою программу. Возможно ли это?

CREATE TABLE IF NOT EXISTS `users` (
  `id_user` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(25) NOT NULL DEFAULT '',
  PRIMARY KEY (`id_user`)
) ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS  `scores` (
 `user_id` INT( 10 ) NOT NULL DEFAULT  '0',
 `score` INT( 10 ) NOT NULL DEFAULT  '0',
PRIMARY KEY (`user_id`),
CONSTRAINT FOREIGN KEY ( `user_id` ) REFERENCES  `users` ( `id_user` )
    ON UPDATE CASCADE
) ENGINE = INNODB;

INSERT INTO users (name) VALUES ('i am');

UPDATE scores SET score = '10' WHERE user_id = '1';

1 Ответ

0 голосов
/ 07 мая 2011

Не уверен, что понимаю пример. Если вы только что вставили пользователя с номером 1, как получается, что в scores есть запись с user_id = 1 ?.

В любом случае, если ваш вопрос , как получить идентификатор пользователя, которого вы только что вставили в users, чтобы вы могли вставить дочернюю запись в scores, вы можете запустить

SELECT LAST_INSERT_ID();

после первой вставки и используйте результат для второй вставки (/update).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...