Php MySQL创建另一个主键
我试图为文章材料创建一个最简单的表,但MySQL为我创建了另一个我不需要的主键Php MySQL创建另一个主键,php,mysql,Php,Mysql,我试图为文章材料创建一个最简单的表,但MySQL为我创建了另一个我不需要的主键 $command = "CREATE TABLE IF NOT EXISTS `$this->table` ( `id` int unsigned UNIQUE NOT NULL AUTO_INCREMENT PRIMARY KEY, `title` varchar(200), `body` text, `autho
$command = "CREATE TABLE IF NOT EXISTS `$this->table` (
`id` int unsigned UNIQUE NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(200),
`body` text,
`author` varchar(100),
`last_moderator` varchar(100),
`category` int(10),
`cdate` datetime,
`lmdate` datetime,
`commentable` boolean,
`active` boolean ) CHARACTER SET utf8 COLLATE utf8_bin
";
这是问题所在。如您所见,我需要id作为主键,但此查询会产生两个主键:
id
和body
。请大家帮助我-我对这个问题沉思了20分钟,但我没有看到任何错误。呃,不,没有<代码>正文未定义为键、主键或其他键:
mysql> CREATE TABLE IF NOT EXISTS `myTable` (
-> `id` int unsigned UNIQUE NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> `title` varchar(200),
-> `body` text,
-> `author` varchar(100),
-> `last_moderator` varchar(100),
-> `category` int(10),
-> `cdate` datetime,
-> `lmdate` datetime,
-> `commentable` boolean,
-> `active` boolean ) CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 0 rows affected (0.02 sec)
mysql> show indexes from myTable;
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| myTable | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE | | |
| myTable | 0 | id | 1 | id | A | 0 | NULL | NULL | | BTREE | | |
+---------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2 rows in set (0.00 sec)
它是正文上的主键还是索引?我检查了你的查询,它只创建id上的pk。也许托管提供商“制造”了我的大脑?你可能有一些东西在
主体上创建了一个额外的键,但它不是那个命令;它不可能是第二个主键,因为MySQL只允许每个tableMark使用一个主键,我知道,但我的眼睛告诉我完全不同的事情。事实上,这就是为什么我要重写表,然后执行您发布的命令,并且只执行该命令,而不执行任何其他可能以任何方式影响数据库的命令。。。。。因为PHP和MySQL都不知道在任意列上任意创建额外的主键,所以使用不同的更正和不使用它们的情况下可以多次执行。我从MyAdmin执行查询,并将其作为PHP代码执行,除了此函数创建表外,没有其他内容。我不知道那是什么