【发布时间】:2014-03-09 04:07:39
【问题描述】:
我对@987654321@我的TABLE使用的命令是:
CREATE TABLE carts(order_id TEXT(14), items TEXT, shipping INT, price INT
我想将 'order_id' 设置为主键。我试过 ALTER TABLE 与:
ALTER TABLE `carts` ADD PRIMARY KEY(order_id)
但这会返回错误:
#1170 - BLOB/TEXT column 'order_id' used in key specification without a key length
我知道这意味着在初始设置中没有正确设置长度,所以我尝试了:
ALTER TABLE `carts` ADD PRIMARY KEY(order_id(14))
返回相同的错误。 phpmyadmin 中定义的类型是 'tinytext';我期待看到TEXT(14)。
我在 PHP 中通过 PDO 执行所有这些命令。将列“order_id”设置为我的TABLE 的主键的正确方法是什么?
【问题讨论】:
-
将
text更改为varchar。您不能将文本设置为主键。 -
您不能使用
TEXT数据类型作为主键。 -
你的最后一条语句很好,它会创建长度为14的主键。那么错误是什么?
-
order_idTEXT??如果您的 order_id 是字符,请将其设为VARCHAR不要为此使用 TEXT。 -
为什么不使用 VARCHAR 作为 orderR_id 列的数据类型?在 MySQL 中为 TEXT/LOB 数据类型创建索引存在限制,这就是您收到错误的原因
标签: mysql