从.sql文件创建sqlite3数据库

时间:2013-05-23 16:50:09

标签: sqlite cygwin red5

目标是用.sql文件创建数据库。

我正在尝试设置本地环境来测试和修改这个red5实现

第1步是

Create a database using the SQL command in database/database.sql

我在Windows上,所以我在Cygwin上,安装了sqlite3和其他一些东西,所以我想我会创建一个数据库。

当我尝试加载文件(我移动)以努力创建数据库时,我明白了。

$ sqlite3
SQLite version 3.7.16.2 2013-04-12 11:52:43
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .load database.sql
Error: %1 is not a valid Win32 application.

我已经google了,这似乎是应用程序文件路径的问题。

实际路径为D:\cygwin\home\Houseman\database.sql

当我运行sqlite3时,我在我的主目录中,所以它应该就在那里,并且可以访问。

我该怎么做?

另外,如果有一个更好的方法来设置一个临时数据库,以便我可以测试这个显然依赖于数据库的应用程序,那也是有帮助的。

由于


我的database.sql文件是

   CREATE TABLE `vpVideo` (
  `ID` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `userID` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL,
  `createDate` bigint(20) DEFAULT NULL,
  `vidExists` varchar(1) DEFAULT 'N',
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

当我.read database.sql时,我得到了

Error: near line 1: near "unsigned": syntax error


所以我拿出了unsignedENGINE=myISAM内容,以及AUTO_INCREMENT,现在它似乎有用了。

至少我执行.read

时不会抛出错误

所以我认为它有效。我可以在某个地方查看文件以查看结果吗?

1 个答案:

答案 0 :(得分:2)

您的导出来自MySQL数据库,因此MyISAM。这对你有用

CREATE TABLE vpVideo (
  ID int(11) NOT NULL,
  userID int(11) DEFAULT NULL,
  name varchar(255) DEFAULT NULL,
  createDate bigint(20) DEFAULT NULL,
  vidExists varchar(1) DEFAULT 'N',
  PRIMARY KEY (ID)
);

使用definition of your primary key

自动完成AUTOINCREMENT

不同数据库之间的导入仅在使用SQL-92标准时才有效。所有数据库供应商都扩展了该标准,因此SQL-92只是整个sqlite语法的一个子集(就像oracle,db2,mysql等其他语法一样)