есть ли один оператор select, который будет выполнять все три из них: первичный ключ, уникальный и автоматический_инкремент?mysql: как изменить столбец для PK Auto_Increment
ответ
Здесь мы создаем столик:
mysql> CREATE TABLE test2 (id int);
Примечание Null ДА, и id
не является первичным ключом, а также не auto_increment.
mysql> DESCRIBE test2;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)
Вот альтер команда:
mysql> ALTER TABLE test2 MODIFY COLUMN id INT NOT NULL auto_increment, ADD primary key (id);
Теперь Null НЕТ, и id
является первичным ключом с auto_increment.
mysql> describe test2;
describe test2;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
+-------+---------+------+-----+---------+----------------+
1 row in set (0.00 sec)
Первичные ключи всегда уникальны.
Первичный ключ всегда уникален.
, вы должны знать, что вопрос был полностью перевернут после того, как вы оставили свой ответ. – tvanfosson
@tvanfosson: thank you =) – newtover
Вы не можете изменить структуру базы данных с помощью операторов связи DML (data manipulation language), таких как SELECT
. Вам нужно указать DDL (язык определения данных). Столбцы таблицы могут быть изменены с ALTER TABLE
:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
Синтаксис в основном это:
ALTER TABLE `foo`
CHANGE COLUMN `bar` `bar` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (`foo`);
Как о точных изменениях, которые вы хотите сделать, вы должны знать, что в реляционных базах данных первичным ключом это значение, которое служит для однозначной идентификации каждой строки в таблице. Он не будет использоваться для этой цели, если он не является уникальным или NULL.
- 1. Envers: auto_increment (не PK) столбец не проверяется
- 2. MySQL обновляет AUTO_INCREMENT pk для сохранения порядка строк
- 3. MySQL InnoDB AUTO_INCREMENT вторичный столбец
- 4. Вопрос AUTO_INCREMENT для mysql
- 5. Изменить колонку на Auto_Increment
- 6. Mysql - изменить колонку, которая будет AUTO_INCREMENT
- 7. столбец auto_increment для группы строк?
- 8. Сделать столбец auto_increment и reposition
- 9. Как изменить поле auto_increment в триггер таблицы в MySQL?
- 10. MySQL - Auto_increment by 10
- 11. Добавление AUTO_INCREMENT в существующий столбец в огромной таблице
- 12. Авто увеличиваем неофициальный столбец PK, если нуль (MySQL 5.5)
- 13. MySql AUTO_INCREMENT в INNODB Двигатель как второй столбец
- 14. MySQL auto_increment
- 15. Как переставить AUTO_INCREMENT Столбец в SQLite (Android)
- 16. рельсы миграции. изменить начальную точку для auto_increment
- 17. Скопированный AUTO_INCREMENT в MySQL?
- 18. MySQL: странное поведение auto_increment
- 19. Ошибка изменения столбца MySQL для AUTO_INCREMENT
- 20. MySQL дублирования KEY кажется, увеличивает столбец AUTO_INCREMENT при запуске
- 21. Как изменить auto_increment в виде MySQL-таблицы, используя Учение
- 22. MySQL ++ и AUTO_INCREMENT
- 23. Мой хост изменил столбец MySQL Auto_increment на два
- 24. Таблицы MYSQL auto_increment
- 25. H2 sql как установить столбец auto_increment
- 26. MySQL AUTO_INCREMENT = 535
- 27. MySQL заполняет новый столбец с добавочными значениями без auto_increment
- 28. Вставка пустой строки в столбец auto_increment в MySQL 5
- 29. MySQL auto_increment не увеличивается
- 30. MySql auto_increment duplicate
Вы имеете в виду одно заявление ALTER? Фактически вы не используете инструкции SELECT для изменения структур таблиц. –
yes thast, что я имею в виду –
, когда вы полностью инвертируете смысл вопроса после того, как получаете ответы, это делает эти ответы действительно глупыми. Если вы сейчас просите о противоположности того, что вы изначально просили, я думаю, вы должны задать новый вопрос. – tvanfosson