Существует ли SQLite equivelant для SHOW CREATE TABLE из MYSQL? - PullRequest
0 голосов
/ 07 мая 2019

Я работаю с sqlite3 и пытаюсь получить оператор создания таблицы для таблицы, которую я изменил с момента ее создания.Однако столбец sql в sqlite_master имеет тот же оператор create, который использовался для создания таблицы.Я ищу что-то более похожее на результаты SHOW CREATE TABLE в MySQL, где предоставляется оператор создания текущей структуры таблицы.Это возможно?Я использую этот оператор создания, чтобы помочь при проверке, если две таблицы одинаковы по структуре.Если они не совпадают, я делаю более глубокую проверку, чтобы увидеть, что именно между ними отличается.

Как упоминалось ранее, я попытался использовать sql столбец sqlite_master.Я также проверил команды PRAGMA, чтобы увидеть, существовало ли то, что я искал.

Я в настоящее время запускаю

SELECT * FROM sqlite_master

Это получает только исходный оператор create таблицы, а не оператор createнужно продублировать таблицу.

Спасибо за помощь!

1 Ответ

1 голос
/ 07 мая 2019

Вы правы, что sqlite_master содержит только (нормализованный) исходный оператор.

SQLite не имеет возможности генерировать для вас CREATE TABLE операторов на основе существующей таблицы.

.dump метод является функцией оболочки SQLite.Если вам нужно сгенерировать операторы CREATE TABLE, вам нужно реализовать их самостоятельно.

Вы можете обратиться к обратному вызову dump_schema в shell.c из SQLite, чтобы увидеть, как оболочка sqlite генерирует вывод .dump.

...