2013-05-23 1 views
1

Цель состоит в том, чтобы сделать базу данных из .sql-файла.Создать базу данных sqlite3 из файла .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. 

Я искал googled вокруг, и это, кажется, проблема с файловым пути к приложению.

Фактический путь 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

Так что я думаю, что это сработало. Могу ли я просмотреть файл где-нибудь, чтобы увидеть результат?

+1

вы пытались 'SQLite> .read ' – MatthiasLaug

+0

@matthiasLuag Нет Я не ... Но теперь я сделал, и я получил синтаксическую ошибку.Я обновлю свой вопрос – Houseman

+1

mh - это sql, экспортированный из базы данных sqlite? Sqlite (как и другие поставщики баз данных SQL) расширили стандартный SQL-92 (http://en.wikipedia.org/wiki/SQL-92) синтаксис, чтобы экспорт не был перекрестно совместим между различными поставщиками баз данных. – MatthiasLaug

ответ

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 осуществляется автоматически с definition of your primary key

импорта между различными базами данных работают только тогда, когда это будет сделано со стандартом SQL-92. Все производители баз данных распространяется этот стандарт, так что SQL-92 является лишь частью всего синтаксиса SQLite (как это для других, как Oracle, DB2, MySQL)

+0

Да, это сработало. Я предполагаю, что синтаксис MySQL немного отличается от sqlite? Так что '.read' работает. Создала ли моя база данных '.read'? – Houseman

+0

точно, я добавил эксплантацию для разных синтаксисов sql – MatthiasLaug

+0

Спасибо. Еще одна вещь, где может храниться моя база данных, поэтому я могу позже связать свой проект с ней? – Houseman