Copying rows in MySQL

2020-07-02 10:48发布

I want to copy all of the columns of a row, but not have to specify every column. I am aware of the syntax at http://dev.mysql.com/doc/refman/5.1/en/insert-select.html but I see no way to ignore a column.

For my example, I am trying to copy all the columns of a row to a new row, except for the primary key.

Is there a way to do that without having to write the query with every field in it?

标签: mysql sql
7条回答
够拽才男人
2楼-- · 2020-07-02 11:30

If you don't specify the columns you have to keep the entries in order. For example:

INSERT INTO `users` (`ID`, `Email`, `UserName`) VALUES
(1, 'so@so.com', 'StackOverflow')

Would work but

INSERT INTO `users` VALUES
('so@so.com', 'StackOverflow')

would place the Email at the ID column so it's no good.

Try writing the columns once like:

INSERT INTO `users` (`Email`, `UserName`) VALUES
('so@so.com', 'StackOverflow'),
('so2@so.com', 'StackOverflow2'),
('so3@so.com', 'StackOverflow3'),
etc...

I think there's a limit to how many rows you can insert with that method though.

查看更多
登录 后发表回答