在 MySQL 中创建表时,可能会遇到两个用于索引数据的术语:INDEX 和 KEY。虽然这两个术语具有相同的目的,但它们的用法有细微的差别。
INDEX 和 KEY 的定义
Create Table 语句中的用法
在 Create Table 语句中,可以互换使用 INDEX 或 KEY 。例如,以下两条语句是等效的:
CREATE TABLE tasks ( task_id INT UNSIGNED NOT NULL AUTO_INCREMENT, parent_id INT UNSIGNED NOT NULL DEFAULT 0, task VARCHAR(100) NOT NULL, PRIMARY KEY (task_id), INDEX parent (parent_id) ); CREATE TABLE orders ( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, KEY order_date (order_date) );
唯一索引与非唯一索引
虽然 INDEX 和 KEY 都可以创建非唯一索引,值得注意的是,主键根据定义是唯一的。这意味着 PRIMARY KEY 列中的值唯一标识表中的每一行。另一方面,INDEX 和 KEY 允许重复值。
主键作为 KEY
在 MySQL 中,您可以使用 KEY 关键字定义主键。但是,建议显式使用 PRIMARY KEY 关键字以避免混淆。例如:
CREATE TABLE customers ( customer_id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (customer_id) );
推荐
虽然 KEY 和 INDEX 在 MySQL 中是同义词,但通常建议使用 INDEX,因为它符合 ISO SQL 标准并改进便携性。
以上是MySQL建表中INDEX和KEY有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!