Mysql SQL:字符串上的触发器子字符串?

Mysql SQL:字符串上的触发器子字符串?,mysql,sql,Mysql,Sql,我在SQL中有一个表,其中有badwords和他的ID,还有一个表,其中有一个图库的照片属性。我想做一个触发器,不允许你在photo.title和photo.description上插入一张带有脏话的照片。我该怎么做 创建表photoId INT NOT NULL主键自动递增,title VARCHAR128 NOT NULL,description VARCHAR512,date DATETIME DEFAULT CURRENT_时间戳,url VARCHAR512 NOT NULL,可见性V

我在SQL中有一个表,其中有badwords和他的ID,还有一个表,其中有一个图库的照片属性。我想做一个触发器,不允许你在photo.title和photo.description上插入一张带有脏话的照片。我该怎么做

创建表photoId INT NOT NULL主键自动递增,title VARCHAR128 NOT NULL,description VARCHAR512,date DATETIME DEFAULT CURRENT_时间戳,url VARCHAR512 NOT NULL,可见性VARCHAR16 NOT NULL,userId INT,外键userId REFERENCES usersuserId,约束有效性可见性检查“Public”、“Private”中的可见性; 创建表格BadWords wordId INT NOT NULL主键自动递增,word VARCHAR100 NOT NULL; 编辑:在插入时触发,以执行此操作选择:

 SELECT * FROM Photos, BadWords 
  
 WHERE  Photos.title LIKE CONCAT('%', BadWords.word ,'%') OR

        Photos.description LIKE CONCAT('%', BadWords.word ,'%')
并删除所有结果。select正在检查标题或说明是否包含BadWords.word列中的值

请添加您的表格样本,以及“坏话”的标准是什么?这个想法是一个过滤器,不允许您在照片的标题和描述中添加侮辱。我的表格是:创建表格照片photoId INT NOT NULL主键自动递增,标题VARCHAR128 NOT NULL,描述VARCHAR512,日期日期时间默认当前时间戳,url VARCHAR512 NOT NULL,可见性VARCHAR16 NOT NULL,userId INT,外键userId REFERENCES usersuserId,约束有效性检查“公共”、“私有”中的可见性;创建表格BadWords wordId INT NOT NULL主键自动递增,word VARCHAR100 NOT NULL;请发布问题详细信息,例如:通过编辑您的问题而不是作为注释来定义表。现在我尝试了这个方法,并且在单词被隔离时有效:分隔符//在插入照片前创建或替换触发器触发器BadWords为每行开始声明photoswithbadwords INT;设置photoswithbadwords=从BadWords中选择COUNT*,其中new.title类似于BadWords.word或new.description类似于BadWords.word;如果photoswithbadwords>0,则向SQLSTATE发送信号“45000”设置消息“Modera tu lenguaje amigo!”;如果结束;结束//分隔符;我尝试过这样使用“%”:像坏字。单词+“%”,但我遇到了这样的错误:截断了不正确的双精度值:“%”尝试这样添加它:像照片。标题像“%”+坏字。单词+“%”或照片。描述像“%”+坏字。单词+“%”一样错误:截断了不正确的双精度值:“%”尝试关闭严格模式您使用的数据库是什么?