目标是用.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
所以我拿出了unsigned
和ENGINE=myISAM
内容,以及AUTO_INCREMENT
,现在它似乎有用了。
至少我执行.read
所以我认为它有效。我可以在某个地方查看文件以查看结果吗?
答案 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等其他语法一样)