Небольшое изменение в вашем определении: (добавленная часть key
, чтобы удовлетворить сообщение ...one auto column and it must be defined as a key
об ошибке)
CREATE TABLE `products` (
`producttype` varchar(15) NOT NULL,
`code` int(6) NOT NULL auto_increment,
`description` varchar(200) NOT NULL,
`price` double default 0.0,
`stock` int default 0,
key (`code`),
PRIMARY KEY(`producttype`, `code`));
... работало для меня:
MariaDB [test]> CREATE TABLE `products` (
-> `producttype` varchar(15) NOT NULL,
-> `code` int(6) NOT NULL auto_increment,
-> `description` varchar(200) NOT NULL,
-> `price` double default 0.0,
-> `stock` int default 0,
-> key (`code`),
-> PRIMARY KEY(`producttype`, `code`));
Query OK, 0 rows affected (0.38 sec)
... потом проверяем таблицу:
MariaDB [test]> desc products;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| producttype | varchar(15) | NO | PRI | NULL | |
| code | int(6) | NO | PRI | NULL | auto_increment |
| description | varchar(200) | NO | | NULL | |
| price | double | YES | | 0 | |
| stock | int(11) | YES | | 0 | |
+-------------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)