2012-07-06 51 views
0

我试图转换MySQL数据库对于SQLite但我面临着主键的唯一约束的一个问题,这是我的MySQL表代码:皈依到SQLite的

CREATE TABLE `table01` (
    `idtable1` INT(11) NOT NULL DEFAULT 0, 
    `nom1` VARCHAR(50) NULL DEFAULT NULL, 
    PRIMARY KEY (`idtable1` ASC), 
    UNIQUE KEY `idtable1` (`idtable1` ASC) 
) DEFAULT CHARSET=utf8 ENGINE=InnoDB; 

和当我使用DBConvert为SQLite的& MySQL的转换在这里是我所得到的:

CREATE TABLE table01 (
    idtable1 int PRIMARY KEY NOT NULL DEFAULT 0, 
    nom1  varchar(50) DEFAULT NULL 
); 

CREATE UNIQUE INDEX idtable1 
    ON table01 
    (idtable1); 

所以,当我读我的数据的基础上,“使用SQLite大师”,SQLite的大师没有认识到主键的独特contraint。

回答

0

可能的原因可能是的SQLite的怪怪癖:它是关于确切措辞敏感,当它是有关主键:

http://www.sqlite.org/lang_createtable.html#rowid

主键列仅变为如果 的整数主键声明的类型名称完全是“INTEGER”。其他整数类型名称如 “INT”或“BIGINT”或“SHORT INTEGER”或“UNSIGNED INTEGER”会导致 主键列的行为与具有整数 亲和力和唯一索引的普通表列不同, rowid。

+0

我试过了,但没有任何结果,仍然是行ID替换我的主键... – cascadox 2012-07-10 10:31:03