【发布时间】:2012-03-03 21:11:18
【问题描述】:
我正在使用 PDO 并试图让我的应用程序同时支持 MySQL 和 SQLite,但在 sqlite 中,当我尝试导入我的数据库架构时出现此错误:
SQLSTATE[HY000]: General error: 1 near "AUTO_INCREMENT": syntax error
查询如下所示:
CREATE TABLE events (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(32) NOT NULL,
title VARCHAR(64) NOT NULL,
description LONGTEXT,
starttime DATETIME DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY(id),
KEY name(name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
(它可以在 MySQL 数据库中使用。)
我不明白这里有什么问题?两个数据库系统不应该兼容吗?
【问题讨论】:
-
SQLite AUTOINCREMENT documentation - 自动增量不是 ANSI,序列最近才被 ANSI 用于处理序列值生成。
-
是什么让你觉得他们是一样的?每个 RDBMS 似乎都有它自己的小转折,所以你会遇到这类问题。这是关于 AUTOINCREMENT 的 sqlite 文档:sqlite.org/autoinc.html