如下运行后,不知道为什么在倒数第二行报错,求大佬帮忙看看~

DROP TABLE IF EXISTS `Software`;
CREATE TABLE IF NOT EXISTS `Game` (
`Name` varchar(255) default NULL,
`Price` varchar(200) default NULL,
`Language` varchar(200) default NULL,
`Genre` varchar(200) default NULL,
`SnipShot` varchar(200) default NULL,
`Website` varchar(200) default NULL,
`PublishDate` varchar(200) default NULL,
PRIMARY KEY (`Name`)
);

CREATE TABLE IF NOT EXISTS `Software` (
`t_Name` varchar(255) default NULL,
`OS` varchar(200) default NULL,
`DirectX` varchar(200) default NULL,
`AdobeFlashVersion` varchar(200) default NULL,
`WebBrowser` varchar(200) default NULL,
FOREIGN KEY (t_Name) REFERENCES Game(Name)
);

create trigger t_game
after insert on Game
for each row
begin
insert into Software(`t_Name`) values (:Game.name)
end;

我想实现的是如果game 里面新加了一个name的话,Software表格也会新启一行,然后Software.t_name= game.name这个怎么实现?急需.....

慕村9548890
浏览 164回答 1
1回答

九州编程

create trigger t_game on Gameinstead of insertasdeclare @myname varcharbeginselect @myname=t_name from insertedinsert into Software(`t_Name`) values (@myname)insert into game select * from insertedend;一定要用instead of ,否则都是insert完成,并且所有约束都检查完成以后才执行,外键约束还是失败的。
打开App,查看更多内容
随时随地看视频慕课网APP