Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向mySql中的现有表添加唯一值_Mysql_Sql_Database - Fatal编程技术网

向mySql中的现有表添加唯一值

向mySql中的现有表添加唯一值,mysql,sql,database,Mysql,Sql,Database,你好 我从另一些表列中创建了一个表,NEW\u table 我添加了一个double类型的新列ID 我想用唯一的值填充ID列的值,然后将其设置为NEW_表键 在MySQL中,有没有一种方法可以通过查询或set命令来实现这一点 我试过这样的方法: Insert into NEW_TABLE (select generateId() , col1, col2 from ORIGINAL_TABLE) 试试这个: Insert into NEW_TABLE (select @row :=

你好

我从另一些表列中创建了一个表,
NEW\u table

我添加了一个double类型的新列
ID

我想用唯一的值填充ID列的值,然后将其设置为
NEW_表

在MySQL中,有没有一种方法可以通过查询或set命令来实现这一点

我试过这样的方法:

Insert into NEW_TABLE
(select  generateId() , col1, col2 
 from ORIGINAL_TABLE)
试试这个:

Insert into NEW_TABLE
(select   @row := @row + 1 as generateId, col1, col2 
 from ORIGINAL_TABLE, (SELECT @row := 0)row)
试试这个:

Insert into NEW_TABLE
(select   @row := @row + 1 as generateId, col1, col2 
 from ORIGINAL_TABLE, (SELECT @row := 0)row)

您应该使用autoincrement和整数字段(是否有任何理由需要在其中使用双键?)


您应该使用autoincrement和整数字段(是否有任何理由需要在其中使用双键?)


通常在定义字段时将其设置为自动递增字段。要在事后执行此操作,您可以使用:

ALTER TABLE NEW_TABLE MODIFY ID int(10) unsigned NOT NULL auto_increment;

要插入一条新记录并使其自动获得分配的ID,只需从插入中省略该字段。

通常在定义字段时将其设置为自动递增字段。要在事后执行此操作,您可以使用:

ALTER TABLE NEW_TABLE MODIFY ID int(10) unsigned NOT NULL auto_increment;

然后要插入一条新记录并自动获取分配的ID,只需从插入中省略该字段。

为什么选择了
DOUBLE
而不是整数数据类型

ALTER TABLE NEW_TABLE
  MODIFY ID INT UNSIGNED NOT NULL AUTO_INCREMENT ;

ALTER TABLE NEW_TABLE
  ADD CONSTRAINT new_table_pk
    PRIMARY KEY (ID) ;
然后:

INSERT INTO NEW_TABLE 
  (col1, col2)
SELECT col1, col2 
FROM ORIGINAL_TABLE ;

为什么选择了
DOUBLE
而不是整数数据类型

ALTER TABLE NEW_TABLE
  MODIFY ID INT UNSIGNED NOT NULL AUTO_INCREMENT ;

ALTER TABLE NEW_TABLE
  ADD CONSTRAINT new_table_pk
    PRIMARY KEY (ID) ;
然后:

INSERT INTO NEW_TABLE 
  (col1, col2)
SELECT col1, col2 
FROM ORIGINAL_TABLE ;

为什么
DOUBLE
而不是
INT
BIGINT
?为什么
DOUBLE
而不是
INT
BIGINT