【发布时间】:2012-04-15 22:22:44
【问题描述】:
我正在研究 PHP 和数据库 MySQL。我在 SQL Server 2005 中有两个表,我想将它们移到 MySQL 中。
这两个表包含具有唯一标识符的字段,而 MySQL 没有唯一标识符数据类型。所以我无法将它转换成 MySQL。
请帮我解决这个问题。
【问题讨论】:
标签: php mysql sql-server database uniqueidentifier
我正在研究 PHP 和数据库 MySQL。我在 SQL Server 2005 中有两个表,我想将它们移到 MySQL 中。
这两个表包含具有唯一标识符的字段,而 MySQL 没有唯一标识符数据类型。所以我无法将它转换成 MySQL。
请帮我解决这个问题。
【问题讨论】:
标签: php mysql sql-server database uniqueidentifier
我猜您正在寻找如何创建主键?还有自动增量,你可能需要它
以下是创建表的示例:
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
【讨论】:
我不熟悉 MS SQL 中唯一标识符的具体细节,但您可以使用 MySQL 的 UUID 函数获得所需的内容:
https://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid
我会将它放在带有UNIQUE 键的VARCHAR 或CHAR 列中。
【讨论】:
当您更改表格以添加另一个列时,您可以使用“添加唯一”。这将添加一个新列,并确保它不是任何已经存在的列的副本。写成:
alter table
your_table
add unique (column_name)
【讨论】:
Mysql 具有“唯一”属性。
欲了解更多信息:http://dev.mysql.com/doc/refman/5.0/en/constraint-primary-key.html
如果你使用像 MySQLWorkbench 这样的软件,你可以检查一个属性作为主键和唯一性。
【讨论】:
Mysql 具有唯一标识符,您可以使用 -unique key 或将字段设为 primary key
【讨论】:
MySQL 知道主键。请阅读手册。 http://dev.mysql.com/doc/refman/4.1/en/constraint-primary-key.html
【讨论】:
我认为您正在寻找 UNIQUE 约束。
以下 SQL 查询在 T 表时在 field1 列上创建 UNIQUE 约束:
MySQL:
CREATE TABLE `T` (
field1 int NOT NULL,
field2 int,
UNIQUE (field)
);
要在表已创建时在field1 列上创建UNIQUE 约束,您可以使用:
ALTER TABLE T
ADD UNIQUE (field1);
要命名UNIQUE 约束,并在多个列上定义UNIQUE 约束,您可以使用:
ALTER TABLE T
ADD CONSTRAINT UC_field1_field2 UNIQUE (field1, field2);
【讨论】: