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/