[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: json > mysql конвертер букмарков мозиллы



Hello!

On Friday 17 April 2009 07:11:41 Nicholas wrote:
> "sqlite_sequence" в дампе json встречается всего дважды (5815,5816 строки):
> DELETE FROM sqlite_sequence;
> INSERT INTO sqlite_sequence VALUES('moz_keywords',4);
>
> (странно что CREATE нет)

С префикса sqlite_ начинаются имена системных таблиц, их нельзя создать или 
удалить, движок SQLite сам ими управляет. 

> попробовал их вообще убрать:

Эти строки устанавливают текущее значение счетчика для autoincrement поля, 
чтобы при последующей вставке без указания счетчика было использовано 
очередное значение autoincrement поля, а не 1.

>
> $ sqlite3 places.sqlite .dump |  perl -pe "s/INSERT INTO sqlite_sequence
> VALUES('moz_keywords',4);//" | perl -pe 's/DELETE FROM
> sqlite_sequence;//'  |\grep -v "BEGIN TRANSACTION;" | \grep -v "COMMIT;"
>
> | \perl -pe 's/INSERT INTO \"(.*)\" VALUES/INSERT INTO "\1" VALUES/'
> |\perl -pe 's/LONGVARCHAR/LONGTEXT/'  |\perl -pe
>
> 's/AUTOINCREMENT/auto_increment/'  | perl -pe 's/TEXT UNIQUE/text/'|
> perl -pe 's/"//'   | perl -pe 's/"//'  | \mysql -u root -p mybase
>
> Enter password:
> ERROR 1146 (42S02) at line 5816: Table 'xbase.sqlite_sequence' doesn't
> exist
>
> Несовсем понятно, как может быть "ошибка в строке 5816", если эта строка
> целиком убрана:
> perl -pe "s/INSERT INTO sqlite_sequence VALUES('moz_keywords',4);//"
>
> Возможно, ошибка в синтаксисе ?

Почему бы вам не пользоваться многострочником для sed:

sed -i "
9iALTER SCHEMA public OWNER TO merch;
9iSET SESSION AUTHORIZATION 'merch';
/CREATE PROCEDURAL LANGUAGE plpgsql;/d
s/ALTER TABLE photo.view_photo_checks OWNER TO postgres;/ALTER TABLE 
photo.view_photo_checks OWNER TO merch;/
" schema.sql

Написанные выше перлокошмарики даже смотреть не хочется. И прикладывайте сам 
дамп, полученный в итоге преобразования, чтобы нам не приходилось 
интерпретировать в своей голове ваши скрипты.

Best regards, Alexey Pechnikov.
http://pechnikov.tel/

Reply to: