2015-04-15 2 views
0

Я пытаюсь создать простейшую таблицу для материала статьи, но MySQL создает для меня другой первичный ключ, который мне не нужен.MySQL создает еще один PRIMARY KEY

$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 минут, но я не вижу никаких ошибок.

+0

Является ли это первичный ключ на теле или только индекс? Я проверил ваш запрос, он создает только pk на id. – moo

ответ

0

эээ, нет, это не .... body не определен как ключ, первичный или иначе:

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) 
+0

http://i58.fastpic.ru/big/2015/0415/e9/01f13c9d79dad180759d54f42b5594e9.png Может быть, хостинг-провайдер «делает» мой мозг? – user3493623

+0

У вас может быть что-то, что создает дополнительный ключ на 'body', но это не та команда; и он не может быть вторым первичным ключом, потому что MySQL допускает только один первичный ключ в таблице. –

+0

Марк, я знаю, но мои глаза говорят мне совершенно абсурдно. Фактически, именно поэтому я здесь – user3493623