【发布时间】:2016-11-15 17:13:17
【问题描述】:
我正在阅读 sequelize 文档,我不确定是否有办法删除列上的主键约束。
【问题讨论】:
标签: node.js sequelize.js
我正在阅读 sequelize 文档,我不确定是否有办法删除列上的主键约束。
【问题讨论】:
标签: node.js sequelize.js
对我有用的是使用 sql,不确定我是否做错了什么,但我尝试过的其他方法似乎都不起作用。
发件人:https://github.com/sequelize/sequelize/issues/313
up: function (queryInterface, Sequelize) {
return queryInterface.sequelize.query('ALTER TABLE my_table DROP PRIMARY KEY');
}
【讨论】:
是的,使用 changeColumn 并提供一个完整的新列定义(与原始列相同),但没有主键。
【讨论】:
以下代码将删除表的主键:
up: function (queryInterface, Sequelize) {
return queryInterface.removeConstraint('table_name', 'PRIMARY');
}
这消除了外键之类的约束:
up: function (queryInterface, Sequelize) {
return queryInterface.removeConstraint('table_name', 'constraint_name');
}
【讨论】:
示例代码:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.removeConstraint('myTable', 'myTable_pkey'); // myTable_pkey = name of constraint
},
down: (queryInterface, Sequelize) => {
return queryInterface.addConstraint('myTable', {
fields: ['id'],
type: 'primary key',
name: 'myTable_pkey'
});
}
};
【讨论】: