如何在没有硬编码行的情况下从表中删除唯一约束?

时间:2016-03-07 22:38:14

标签: c# mysql unique-constraint

我不确定这是否重复,因为有几种方法可以删除唯一约束。我觉得我的问题不同,足以保证一个新问题。我有C#代码,它构建了mysql查询。他们看起来像这样:

CREATE table_B like table_A;

然后我改变每个新创建的表以添加类似于此的历史记录详细信息:

ALTER TABLE table_B 
MODIFY COLUMN primary_column int(11) NOT NULL,  
DROP KEY `PRIMARY`, 
ENGINE = MyISAM,  
ADD db_action_type VARCHAR(8) DEFAULT 'insert' FIRST,  
ADD revision INT(6) NOT NULL AUTO_INCREMENT AFTER db_action_type,  
ADD dt_datetime DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER revision, 
ADD PRIMARY KEY(revision);

基本上,我正在创建历史表。我遇到的麻烦是,如果表具有唯一约束,则无法添加其他行。我可以做一些查询来获取每个表的唯一约束列的列表,并单独或作为此alter table的一部分更改每个列。我只是想知道是否有一种简单的方法,不需要知道任何列名称。是否有任何类型的毯子效应丢弃唯一属性而不关心细节?

0 个答案:

没有答案