SQLite и атрибут автоинкремнт (auto_increment)
Здравствуйте, уважаемые посетители моего блога Курилка.co.ua. С недавних пор заинтересовался такой штукой как SQLite. Однако, после долгого использования MySQL, возникли проблемы с атрибутом автоинкремен (auto_increment). В данной заметке я решил поделиться своим опытом и решением «проблемы», но всё по порядку.
Что такое SQLite?
SQLite — это встраиваемый движок баз данных. Под словом «встраиваемый» подразумевается, что SQLite не использует концепцию клиент-сервер, т.е. движок SQLite не является отдельно работающим процессом, а представляет собой библиотеку. Следует отметить, что 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;
Вот собственно и всё. Если у вас есть какие-то утонения, вопросы и т.п. – пишите. Спасибо за внимание.