使用FOREIGN KEY的SQL语法

问题描述

我有下表:

var myMap = new Map()
myMap.set('0','foo')
myMap.set('1','bar')
myMap.set('2','baz')

let iterator = myMap.keys();

let mapLastValue

for (i = 0; i < myMap.size; i += 1) {
  mapLastValue = iterator.next().value
}

console.log(mapLastValue) // 2

显示错误:-您的sql语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以在'CONSTRAINT CREATE TABLE IF NOT EXISTS {}.roles_permissions ( role_id INT (12) NOT NULL,permission_id INT (12) NOT NULL,UNIQUE KEY (role_id,permission_id) CONSTRAINT `fk-rprole` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE CONSTRAINT (`fs_rppermission`) FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) 附近使用正确的语法 外键

出什么问题了?

解决方法

考虑:

CREATE TABLE IF NOT EXISTS roles_permissions (
    role_id INT(12) NOT NULL,permission_id INT(12) NOT NULL,UNIQUE KEY (role_id,permission_id),CONSTRAINT `fk-rprole` FOREIGN KEY (`role_id`) 
        REFERENCES `roles`(`id`)
        ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT `fs_rppermission` FOREIGN KEY (`permission_id`)
        REFERENCES `permissions` (`id`)
        ON DELETE CASCADE ON UPDATE CASCADE
);

理论上:

  • 在您的陈述中缺少逗号

  • 外国人的名字不应该用括号括起来

  • ...正确的格式使该语句更易于编写和阅读

Demo on DB Fiddle