【发布时间】:2018-10-01 07:35:28
【问题描述】:
我有
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.0.36-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
我的表描述:
MariaDB [GTX_CC]> desc SubscribedUser;
+---------------------------------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------------------------------+--------------+------+-----+---------+-------+
| UserID | varchar(25) | NO | PRI | NULL | |
| UserName | varchar(100) | YES | | NULL | |
| UserStatusCode | varchar(10) | NO | | NULL | |
| Password | varchar(512) | NO | | NULL | |
现在我想修改 UserID 的 Column 长度为 varchar(999)
跑步
MariaDB [GTX_CC]> ALTER TABLE SubscribedUser MODIFY UserID varchar(999) NOT NULL AUTO_INCREMENT;
给出以下错误:
ERROR 1063 (42000): Incorrect column specifier for column 'UserID'
已添加>
我也试过了:
MariaDB [GTX_CC]> ALTER TABLE SubscribedUser MODIFY UserID varchar(999) NOT NULL ;
它也给出错误:
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
还尝试如下:
MariaDB [GTX_CC]> ALTER TABLE SubscribedUser MODIFY UserID varchar(767) NOT NULL ;
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
MariaDB [GTX_CC]> ALTER TABLE SubscribedUser MODIFY UserID varchar(766) NOT NULL ;
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
MariaDB [GTX_CC]>
我的陈述有什么问题?请帮忙?
【问题讨论】:
-
你想在这里做什么?如果您想要自动递增,请不要使用
varchar -
现在我想修改UserID的Column长度为varchar(999)
-
999 对于索引列来说太长了。最大 255也使用
int而不是varchar(...) -
UserID 不能是整数。让我试试 255
-
MariaDB [GTX_CC]> ALTER TABLE SubscribedUser MODIFY UserID varchar(255) NOT NULL ; ERROR 1833 (HY000): Cannot change column 'UserID': used in a foreign key constraint 'fk_Session_SubscribedUser1' of table 'GTX_CC.UserSession' 现在,卡在其他事情上。