如何在MySQL中创建具有唯一标识符字段的表

时间:2012-04-02 08:49:48

标签: php mysql sql-server database uniqueidentifier

我正在研究PHP和数据库MySQL。我在SQL Server 2005中有两个表,我想将它们移动到MySQL中。

这两个表包含唯一标识符的字段,而MySQL没有唯一标识符数据类型。所以我无法将其转换为MySQL。

请帮我解决这个问题。

7 个答案:

答案 0 :(得分:4)

我猜您正在寻找如何创建主键?还有自动增量,您可能需要

以下是表创建的示例:

CREATE TABLE `affiliation` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `affiliate_id` bigint(20) DEFAULT NULL,
 `email_invited` varchar(255) DEFAULT NULL,
 `email_provider` varchar(255) DEFAULT NULL,
 PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8

答案 1 :(得分:3)

我不熟悉MS SQL中唯一标识符的细节,但您可以通过MySQL UUID函数获得所需内容:

https://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid

我会将其放在VARCHARCHAR列中,并带有UNIQUE键。

答案 2 :(得分:1)

当您要更改要添加到另一个列中的表时,可以使用“添加唯一”。这将添加一个新列,并确保它不是任何现有列的副本。它写成:

alter table 
your_table 
add unique (column_name)

答案 3 :(得分:1)

Mysql具有“唯一”属性。

有关详细信息:http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html

如果您使用MySQLWorkbench之类的软件,则可以将属性检查为主键并且是唯一的。

答案 4 :(得分:1)

Mysql有唯一标识符,您可以使用 - unique key或将字段设为primary key

答案 5 :(得分:1)

答案 6 :(得分:0)

我认为您正在寻找 UNIQUE约束

UNIQUE表中,以下SQL查询在field1列上创建T约束:

MySQL:

CREATE TABLE `T` (
    field1 int NOT NULL,
    field2 int,
    UNIQUE (field)
);

要在已经创建表后在UNIQUE列上创建field1约束,可以使用:

ALTER TABLE T
ADD UNIQUE (field1);

要命名UNIQUE约束并在多列上定义UNIQUE约束,可以使用:

ALTER TABLE T
ADD CONSTRAINT UC_field1_field2 UNIQUE (field1, field2);

Source