SQlite语法错误我不知道什么是错的

时间:2012-08-30 20:22:22

标签: android sql database sqlite

我想知道我的sql语法出了什么问题。它正在使用mysql但是对于sqlite来说我错了。

CREATE TABLE IF NOT EXISTS `points` (
                                     `id` int(11) NOT NULL AUTO_INCREMENT, 
                                     `name` varchar(50) CHARACTER SET latin1 NOT NULL, 
                                     `longitude` double NOT NULL, 
                                     `latitude` double NOT NULL, 
                                     `radius` double NOT NULL, 
                                     `image` blob NOT NULL, 
                                     PRIMARY KEY (`id`)
                                    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=4;

INSERT INTO `points` (`id`, `name`, `longitude`, `latitude`, `radius`, `image`) 
VALUES      (1, 'Isfahan, Iran', 51.678314, 32.65036, 0.064486, 
             0xffd8ffe000104a46494600010001009600960000fffe001f4c45414420546563686e6f6c6f6769657320496e632e2056312e303100ffdb008400100b0c0e0c0a100e0d0e1211101318281a181616183123251d283b343e3d3a34393841495d4f414558463839516f52586063696a693f4e737b72667a5d676964011112121815182f1a1a2f644339436464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464ffc4003000000203010000000000000000000000000001020304050101010101010100000000000000000000000102030405ffc20011

1 个答案:

答案 0 :(得分:3)

  1. 它应该是AUTOINCREMENT一个字。

  2. 您不需要此语句:ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci AUTO_INCREMENT=4;这是特定于MySQL的。此外,如果您将自动增量值设置为从5开始,则不应插入等于1的id。

  3. 插入语句后似乎没有结束括号。

  4. 你应该尝试:

    CREATE TABLE IF NOT EXISTS `points` (
                                         `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
                                         `name` varchar(50) CHARACTER SET latin1 NOT NULL, 
                                         `longitude` double NOT NULL, 
                                         `latitude` double NOT NULL, 
                                         `radius` double NOT NULL, 
                                         `image` blob NOT NULL
                                        );
    
    INSERT INTO `points` (`id`, `name`, `longitude`, `latitude`, `radius`, `image`) 
    VALUES      (1, 'Isfahan, Iran', 51.678314, 32.65036, 0.064486, 
                 0xffd8ffe000104a46494600010001009600960000fffe001f4c45414420546563686e6f6c6f6769657320496e632e2056312e303100ffdb008400100b0c0e0c0a100e0d0e1211101318281a181616183123251d283b343e3d3a34393841495d4f414558463839516f52586063696a693f4e737b72667a5d676964011112121815182f1a1a2f644339436464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464ffc4003000000203010000000000000000000000000001020304050101010101010100000000000000000000000102030405ffc20011);
    

    也可能需要更多修复。虽然SQLite认可了返回滴答,但它是MySQL特定的引用。