MySQL:在已填充的表中创建新的唯一字段

标签 mysql database

我需要在数据库表中创建一个字段,该字段已经填充了数据。当然,仅仅将字段添加为空是不可能的。只能想到新建一个新结构的表,把现有的数据复制到新表中,但是不知道有没有更简单的方法。

提示:它是一个复合键,由同一个表中的其他 3 个字段组成。

编辑:该字段包含一个 varchar 值 编辑:因为你们中的一些人会问,不可能仅通过使用 ADD UNIQUE 在填充的表中创建新的 UNIQUE 字段。它在所有条目中复制新的(空的或非空的)值。示例:

ALTER TABLE 'tablename' ADD 'fieldname' VARCHAR( 64 ) NOT NULL , 添加独特的( '字段名' )

错误:键“fieldname”的重复条目“”

最佳答案

Of course just adding the field empty is not possible.

为什么?

我会执行以下操作:

  1. 通过 ALTER TABLE t ADD COLUMN new_column *type_definition* 创建字段
  2. 更新新创建的字段,如 UPDATE t SET new_column=*computation_expression*
  3. ALTER TABLE t ADD INDEX ... 添加索引(或 ALTER TABLE t ADD PRIMARY KEY ... 如果您需要它作为主)。

关于MySQL:在已填充的表中创建新的唯一字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733573/

相关文章:

php - 如何列出在线论坛中所有没有答案的问题

MySQL 在 case 语句中保留类型

php - 使用 JQuery 与 mySQL 混淆

database - 如何从 InfluxDB 获取 `MEASUREMENTS` 的大小?

swift - 如何删除CloudKit中的CKRecord和所有引用记录

python - SQLAlchemy 和 django,准备好生产了吗?

java - 如何检查Android中是否存在数据库?

php - 为什么 "INSERT INTO SELECT"比插入慢?

php - 如何向mysql插入、更新多个复选框?

mysql - MySQL中如何让多个表共享id列