Помогите пожалуйста начинающему программисту SQL !
Как сделать полную копию таблицы ? Вроде бы:
Код: Выделить всё
CREATE TABLE TableNew As Select * FROM TableOld;
Как добавить копирование PRIMARY KEY ? Или создание PRIMARY KEY(RecID) ...
Модератор: Andrew™
Код: Выделить всё
CREATE TABLE TableNew As Select * FROM TableOld;
Код: Выделить всё
CREATE TABLE PHILSUCKS AS ( SELECT PHIL, SUCKS FROM EGGS );
Код: Выделить всё
CREATE TABLE PHILSUCKS
(
PHIL INTEGER PRIMARY KEY,
SUCKS INTEGER NOT NULL
);
INSERT INTO PHILSUCKS ( SELECT PHIL, SUCKS FROM EGGS );
Код: Выделить всё
CREATE INDEX EGGSUCKING ON PHILSUCKS (SUCKS);
I decided the question a long time ago. But this is a slow solution.ingasoftplus писал(а): ↑12 Март 2021, 12:33 use a "normal" CREATE TABLE statement, then INSERT the rows manually
Гуглы разные, я перед ответом на всякий случай проверил, народ обсуждал, надо только подальше почитать. Про реально работающих было бесподобно, спасибо.Игорь Столяров писал(а): ↑12 Март 2021, 11:51 Гуглил есстестно ...
Там либо какой-то бред, либо заумные рассуждения о работе из командной строки.
Ну и бесконечный копипаст одного и того же. А CLONE - это вообще про БД, а не таблицу.
Думал, может у нас на форуме есть реально работающие с SQL ...
Код: Выделить всё
sqlite> .output c:/sqlite/albums.sql
! указываем в какой файл сохранить
sqlite> .dump albums
!указываем какую таблицу, если не указывать, сохраняет всю базу
sqlite> .quit
Приятно цитировать самого себя. Хоть кто-то читает перед тем как написать. Но всё равно спасибо !Игорь Столяров писал(а): ↑12 Март 2021, 11:51 Там либо какой-то бред, либо заумные рассуждения о работе из командной строки.
Код: Выделить всё
DATA
AA CSTRING(4096)
BB CSTRING(4096)
CODE
! получаем схему таблицы
sqldumy{PROP:SQL} = 'SELECT sql FROM sqlite_master WHERE type=`table` AND name=`mytable`'
Next(sqldumy)
AA = sqldumy.field
! получаем индексы -index
sqldumy{PROP:SQL} = 'SELECT sql FROM sqlite_master WHERE type=`index` AND tbl_name=`mytable`'
Next(sqldumy)
BB = sqldumy.field
! найти в строке AA 'mytable' заменить на 'mytable1', выполняем создание таблицы с новым названием
sql{PROP:SQL} = AA
! копируем данные
INSERT INTO mytable1 AS SELECT * FROM mytable
Я не работаю с SQLLite, в основном работаю с MSSQL и подобными.Игорь Столяров писал(а): ↑12 Март 2021, 15:07 Я только учусь работать с SQL и не знаю как сделать полноценную копию таблицы одной командой.
Интернет читал какой есть, но не нашёл реального решения.
Сделал по книжке через создание новой таблицы и тупо перелил записи.
Если Вы знаете SQL и понимаете смысл вопроса - помогите пожалуйста его решить.
Если нет - ну буду сам искать, читать дальше интернет и т.д.