MySQL:如何在 phpMyAdmin 上设置主键?

Posted

技术标签:

【中文标题】MySQL:如何在 phpMyAdmin 上设置主键?【英文标题】:MySQL: How to set the Primary Key on phpMyAdmin? 【发布时间】:2013-10-12 11:10:33 【问题描述】:

帮助!第一次使用 phpMyAdmin。我打算设置为主键的列是phpMyAdmin中的TEXT,它给了我一个错误消息,无法设置主键!而且我不想将其更改为 INT。我该如何解决这个问题?百万谢谢!

PS。我还没有在这个表上输入任何值或关联任何其他表。

【问题讨论】:

【参考方案1】:

您可以在文本列上设置主键。在 phpMyAdmin 中,显示表的结构,单击索引,然后要求在一列上创建索引。然后选择 PRIMARY,选择您的 TEXT 列,但您必须设置足够大的长度以使其独一无二。

【讨论】:

谢谢你告诉我。我现在知道该怎么做了。另一个问题出现了,Index 是什么意思和作用? 那将是一个新线程。这是***.com/questions/707874/… 的答案,但通常您需要检查堆栈溢出的答案,如果不存在,请将其作为单独的问题发布以供其他人查找。 使“要求创建索引”变得不那么模糊:在 phpmyadmin 4.8.x 中,在表结构视图中,结构网格的正下方有用于分配主要、唯一和索引的可单击项这些功能的复选框字段。或者在“索引”显示下方的页面下方,有一个“创建索引”功能,您可以选择 N 列。相邻的 Go 按钮调用一个对话框来填写更多信息,包括 Primary/Unique/Index 和更多选择。它还允许预览它建议运行的 ALTER sql。【参考方案2】:

mysql可以索引一列的前x个字符,但是TEXT类型是可变长度的,所以mysql不能保证该列的唯一性。如果你仍然想要文本列,使用VARCHAR。

【讨论】:

【参考方案3】:

您不能设置数据类型为“文本”的字段。仅因为那件事,您才会收到此错误。尝试用 int 改变数据类型

【讨论】:

@just_a_newbie:那么,如果你的值是可变长度的,你应该使用varchar,如果你的值是恒定长度,你可以使用char。【参考方案4】:

您可以查看下面的 INDEXES 列,您可以在其中找到设置了默认 PRIMARY KEY 的位置。如果未设置或您想将任何其他变量设置为 PRIMARY KEY,则下面会出现一个对话框,用于创建要求列号的索引,无论您是创建新的还是编辑现有的。现有的会显示一个编辑按钮,你可以去编辑它,你完成保存它,你准备好了

【讨论】:

以上是关于MySQL:如何在 phpMyAdmin 上设置主键?的主要内容,如果未能解决你的问题,请参考以下文章

navicat for mysql 如何设置多个字段唯一?

在MySQL中如何设置主键和外键

mysql外键仅引用复合主键的一部分

如何设置mysql 主键自动增长

mysql如何设置自增主键

如何设置主键自增从1000开始每次自增1