Абстракция позволяет Вам рассматривать сложный процесс как простой процесс. Например, стандартная абстракция "файла" рассматривает файлы как непрерывный массив байтов. Пользователь/разработчик даже не должен думать о проблемах кластеров и фрагментации. (Абстракция обычно появляется как классы или подпрограммы.)
Сокрытие информации о защите Ваших абстракций от злонамеренных/некомпетентных пользователей. Путем ограничения управления некоторого состояния (выделения жесткого диска, например) исходному разработчику, огромные объемы обработки ошибок становятся избыточными. Если никто больше помимо драйвера файловой системы не может записать в жесткий диск, то драйвер файловой системы знает точно, что было записано в жесткий диск и где. (Обычное проявление этого понятия private
и protected
ключевые слова на языках OO.)
Ну, поскольку я не смог сделать это так, как я хотел, я прибег к использованию неявного идентификатора строки, который достаточно удобно имеет то же имя, что и столбец rowId, который я определил явно, так что теперь Я могу использовать запрос, который был у меня в вопросе, и он вставит все данные с новым rowId. Чтобы остальная часть программы работала, я просто изменил SELECT * FROM table
на SELECT rowId, * FROM table
и все в порядке.
Абсолютно никакого способа сделать это. Объявление первичного ключа подразумевает, что это поле уникально. У вас не может быть неуникального ПК.
№. Вам необходимо знать схему таблицы, чтобы правильно написать инструкцию вставки.
Вы должны иметь возможность записать инструкцию в форме:
insert into Table (column1, column2, column3)
select column1, column2, column3
from OtherTable
where rowId = 5