mysql触发器mysql python语法错误

js81xvg6  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(223)

我正在使用pythontkinter和pymysql连接器。我需要为名为“slots”的表创建一个触发器。如果项目/插槽数超过6,则必须显示自定义消息。代码在mysql工作台中为我工作,但是消息显示在7个项目/槽之后,即插入7个项目之后。下面是我在python中使用的代码。

someMessage = 'Slots more than 6'

sqlTrigger = ("CREATE TRIGGER slotTrigger BEFORE INSERT ON SLOTS \n"
                              "FOR EACH ROW \n"
                              "BEGIN \n"
                                    "declare custom_message varchar(100)\n"
                                        "IF (SELECT COUNT(*) FROM slots)>6 THEN \n"
                                            "SET custom_message = %s \n" 
                                            "SIGNAL SQLSTATE '45000'\n" 
                                            "SET message_text = custom_message;\n"
                                        "END IF;\n" 
                              "END")
valTrigger=someMessage
mycursor.execute(sqlTrigger, valTrigger)
mydb.commit()

错误消息:pymysql.err.programmingerror:
(1064),“您的sql语法有错误;请查看与您的mysql服务器版本相对应的手册,以了解在“if(select count(*)from slots)=7 then\nset custom\u message='slots more than'第5行”附近使用的正确语法
提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题