【发布时间】:2012-01-04 20:30:59
【问题描述】:
我需要在已填充数据的数据库表中创建一个字段。当然,仅将字段添加为空是不可能的。我只能想到用新的结构创建一个新表并将现有数据复制到新表中,但我想知道是否有更简单的方法。
提示:它是一个复合键,由同一张表中的 3 个其他字段组成。
编辑:该字段包含一个 varchar 值 编辑:因为你们中的一些人问,不可能仅通过使用 ADD UNIQUE 在填充表中创建新的 UNIQUE 字段。它在所有条目中复制新的(无论是否为空)值。示例:
ALTER TABLE 'tablename' ADD 'fieldname' VARCHAR( 64 ) NOT NULL , 添加唯一( '字段名' )
错误:键 'fieldname' 的重复条目 ''
【问题讨论】:
-
为什么不能创建字段然后用数据填充它?
-
@Robert 因为它的值(是否为空)将在所有条目中重复。由于它是唯一键,因此这是不可能的。
-
@JasonMcCreary 是的,还有另一个唯一键(auto_increment)。
-
好吧,如果(空)值重复,为什么不行呢?您可以先添加没有键的字段(空的,重复的),然后执行 UPDATE 以使其真正唯一,然后才通过单独的语句创建键。