3

目标是用 .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.

我搜索了一下,这似乎是应用程序文件路径的问题。

实际路径是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


所以我拿出了unsignedand 的ENGINE=myISAM东西,以及 the AUTO_INCREMENT and now 它似乎工作了。

至少当我这样做时它不会抛出错误.read

所以我认为它奏效了。我可以在某处查看文件以查看结果吗?

4

1 回答 1

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)
);

AUTOINCREMENT 是根据您的主键定义自动完成的

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

于 2013-05-23T17:03:44.137 回答