Я новичок в разработке PHP и просто задаюсь вопросом, существует ли существующая функция на PHP, чем дублировать команду copy
на phpmyadmin, я знаю, что последовательность запросов ниже, но это похоже на длинный запрос/код, поскольку в таблице есть много столбцов. я имею в виду, если phpmyadmin имеет эту функцию, может быть, это вызов функции сборки?
SELECT * FROM table where id = X
INSERT INTO table (XXX)VALUES(XXX)
Where the information is based from the SELECT query
Примечание. Идентификатор является основным и автоматически увеличивается.
Вот команда копирования на phpmyadmin
я имею в виду, если phpmyadmin имеет эту функцию, может быть, это вызов функции сборки?
В MySQL нет встроенных функций для дублирования строки, отличной от INSERT
формы: INSERT INTO tableName ( columns-specification ) SELECT columns-specification FROM tableName WHERE primaryKeyColumns = primaryKeyValue
.
Проблема заключается в том, что вам нужно знать имена столбцов заранее, вам также необходимо исключить столбцы auto_increment
, а также столбцы первичного ключа и знать, как придумать "умные значения по умолчанию" для столбцов первичного ключа auto_increment
non- особенно составные. Вам также нужно будет рассмотреть, должны ли выполняться какие-либо триггеры - и как обрабатывать любые ограничения и индексы, которые могут быть разработаны для предотвращения дублирования значений, которые может быть реализована "копией".
Вы все еще можете сделать это в PHP или даже в чистом-MySQL (внутри sproc, используя Dynamic SQL), но вам нужно запросить information_schema
для получения метаданных о вашей базе данных, что может быть больше проблем, чем стоит.