Приветствую.
Можно ли в Таблице Базы данных силами одного только SQL сделать, авто-инкрементируемый первичный ключ не просто вида 1
,2
,3
а такого 00001
,00002
,00003
и т.д. ?
Пробую создать таблицу с zerofill
:
CREATE TABLE `t` (
`number_tasks_id` int(5) zerofill NOT NULL AUTO_INCREMENT
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
на что sql
выдает ошибку :
1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
В mysql
реализован дополнительный атрибут zerofill
mysql> create table zai (i int(5) zerofill auto_increment primary key, val int);
Query OK, 0 rows affected (0.09 sec)
mysql> insert into zai (val) values (1),(2),(3);
Query OK, 3 rows affected (0.04 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select * from zai;
+-------+------+
| i | val |
+-------+------+
| 00001 | 1 |
| 00002 | 2 |
| 00003 | 3 |
+-------+------+
3 rows in set (0.00 sec)
Впрочем, не рекомендую на него полагаться. У вас вопрос очевидно относится к вопросам вывода данных - вот при выводе форматировать и правильнее. Если очень хочется форматировать силами SQL - есть строковая функция lpad
mysql> select val, lpad(val, 5, '0') from zai;
+------+-------------------+
| val | lpad(val, 5, '0') |
+------+-------------------+
| 1 | 00001 |
| 2 | 00002 |
| 3 | 00003 |
+------+-------------------+
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
То есть потом, для того что бы получить ещё данных просто заново открыть? Это не сильно нагружает сервер(открытие и закрытие сокетов)?