如何将id_user作为默认的插入子user_id?我会立即更新,没有额外的select和insert在我的程序。这个是可能的吗?
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';
发布于 2011-05-06 23:22:37
我不确定我是否理解这个例子。如果您只是插入了用户编号1,那么为什么在带有user_id = 1
的scores
中有一条记录呢?
无论如何,如果您的问题是如何获取刚刚将插入到users
中的用户的id,以便可以将一个子记录插入到scores
中,您可以运行
SELECT LAST_INSERT_ID();
在第一个插入之后,并将结果用于第二个插入(/update)。
https://stackoverflow.com/questions/5917255
复制