Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL创建另一个主键_Php_Mysql - Fatal编程技术网

Php 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

我试图为文章材料创建一个最简单的表,但MySQL为我创建了另一个我不需要的主键

$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代码执行,除了此函数创建表外,没有其他内容。我不知道那是什么