(针对 SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行)
数据库名称:MySQL
数据库版本:5.7.7
内容/问题描述:
各位板上先进大家好,小弟PPT第一次PO文,请多多指教。
小弟目前设计一个数据库有4个表格,就称他为ABCD表格
A表格纪录驾驶资料,字段有:驾驶id、驾驶名称
B表格纪录车辆资料,字段有:车辆id、载客(无载客为0有载客为1)
C表格纪录叫车纪录(客人上车前纪录),字段有:叫车纪录id、驾驶名称
D表格纪录载客纪录(客人下车后记录),字段有:载客纪录i、金额d
我在C表格写了一个trigger,想要在C字段输入资料前,将B表格载客的0更新为1
语法:CREAT TRIGGER `NAME` BEFORE INSERT ON `叫车纪录` FOR EACH ROW
BEGIN
UPDATE A, B, C set B.载客='1'
where A.驾驶id = C.驾驶id
and A.车辆id = B.车辆id;
END
输入完毕后,出现一个奇怪的问题,我要在C表格输入两笔资料才会成功更新载客,
也就是第1笔、第3笔资料输入完全没有触发trigger。
后来依照一样的语法在D表格写一个trigger(把载客改回0)
出现一模一样的结果,第一笔资料输入无法触发trigger。
另外有个更奇怪问题,我输入完trigger触发失败后,想休息一下先关掉程式,
再打开后我的数据库就打不开那几个表格了,一直转圈圈。后来好像有跑出bug
之类的讯息。
我只是刚学DB新手,如果是很低端的错误请鞭小力一点。
还请各位先进替小的解惑。万分感激。