Sqlite і атрибут автоінкремнт (auto_increment)

Author wmas | Category PHP

Привіт, шановні відвідувачі мого блогу Курілка.co.ua. З недавніх пір зацікавився такою штукою як SQLite. Однак, після тривалого користування MySQL, виникли проблеми з атрибутом автоінкремен (auto_increment). У цій статті я вирішив поділитися своїм досвідом і рішенням «проблеми», але все по порядку.

Що таке SQLite?

Уточнення: мова піде про SQLite як розширення для PHP.

установка SQLite

Думаю, буде не зайвим дати невелику підказку: «як встановити розширення SQLite для PHP 5 на локальний сервер (Денвер) під Windows?» Природно вам знадобиться завантажити пакет розширень для PHP5. Знайти їх можна офіційному сайті збірки Денвер, а саме тут. Принаймні, саме там я їх і брав. Після установки (якщо у вас все встановлено по дефолту) заходимо в папку: WebServer / usr / local / php5, де відкриваємо файл php.ini і раскавичіваем (прибираємо на початку рядка символ крапка з комою (;)) такі рядки:

extension = php_pdo.dll
extension = php_pdo_sqlite.dll
extension = php_sqlite.dll

Стартуємо або перезапускаємо сервер. Ось все і працює.

Створення таблиць в MySQL і SQLite

Ні, я не збираюся розбиратися з питанням: «що краще, MySQL або SQLite?» Однак, з точки зору мови запитів SQL певні відмінності є. Одне з струмових атрибут автоінкремнт. Якщо для MySQL це AUTO_INCREMENT, то для SQLite - AUTOINCREMENT, тобто без символу підкреслення (_). Щоб було зрозуміліше приведу робочий приклад створення таблиці test в SQLite:

CREATE TABLE test (id INTEGER AUTOINCREMENT, name VARCHAR (128) NOT NULL, PRIMARY KEY (id));

PHP-код створення БД database і таблиці test

Так як я вже заговорив про PHP, то наведу невеликий приклад коду по створенню БД database і таблиці test:

if ($ db = sqlite_open ( "database", 0666, $ error)) sqlite_query ($ sb, "CREATE TABLE test (id INTEGER AUTOINCREMENT, name VARCHAR (128) NOT NULL, PRIMARY KEY (id));");
> Else echo 'Error:'. $ Error;

Ось власне і все. Якщо у вас є якісь утонения, питання і т.п. - пишіть. Дякуємо за увагу.