【问题标题】:SQL Syntax error when executing执行时出现 SQL 语法错误
【发布时间】:2013-10-07 10:27:31
【问题描述】:

我已经尝试了所有可能对语法产生影响的方法,但没有任何效果。我想运行这个脚本来向名为 pm_Permissions 的表中添加一个条目。但是,当我再次运行它,并且该条目已经存在时,我不想再次添加它。

IF NOT EXISTS (SELECT 1 FROM pm_Permissions WHERE permission_tag = 'dbcorrectstructure')
BEGIN

    LOCK TABLES `pm_Permissions` WRITE;
    /*!40000 ALTER TABLE `pm_Permissions` DISABLE KEYS */;
    INSERT INTO `pm_Permissions` VALUES (NULL,'dbCorrectStructure', 'Makes sure all the correct tables, columns and entries exist','dbcorrectstructure','$sourcedir/administration.lib.php','dbCorrectStructure','Administration',0);
    /*!40000 ALTER TABLE `pm_Permissions` ENABLE KEYS */;
    UNLOCK TABLES;

END

提前致谢。

【问题讨论】:

    标签: sql if-statement not-exists


    【解决方案1】:
    (SELECT 1 FROM pm_Permissions WHERE permission_tag = 'dbcorrectstructure') 
    

    这里是permission_tag = 'dbcorrectstructure',但是当你插入它是'dbCorrectStructure'...

    对吗?,我觉得你也应该匹配大小写..

    你应该像这样检查(SELECT 1 FROM pm_Permissions WHERE permission_tag = 'dbCorrectStructure')

    【讨论】:

    • 不,permission_tag是表格的第四列,不包含任何大写字母。
    • @user2834317 哦,对不起,我不知道 bdw (SELECT 1 FROM pm_Permissions WHERE permission_tag = 'dbcorrectstructure') 给了你任何记录?你能告诉我们你的表的表结构吗...
    猜你喜欢
    • 1970-01-01
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多