我有一个包含10个字段的数据库,其中只有少数字段经常更改。我想打开当前记录,更新它,然后使用新的自动ID将其输入数据库,同时保留以前的记录。
如果我插入新记录,我必须重新输入所有信息,即使它没有改变。 如果我更新记录,它将覆盖以前的值。
任何建议都将不胜感激
答案 0 :(得分:0)
您可以通过两个不同的查询来完成:SELECT和INSERT,或者您可以使用INSERT INTO SELECT构造。查看文档以获取完整参考http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
答案 1 :(得分:0)
的适当修改版本怎么样?
insert into table select * from table where id='current_id'
示例查询:假设我想阅读第一条记录,解除学生,主题但更改标记并插入新记录
insert into score(student,subject,marks)
select student,subject,'30' from score where id=1;
Sample Data
+---------+---------+-------+----+
| student | subject | marks | id |
+---------+---------+-------+----+
| A1 | phy | 20 | 1 |
| A1 | bio | 87 | 2 |
| A2 | che | 24 | 3 |
| A3 | che | 50 | 4 |
Table structure:
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| student | varchar(20) | YES | | NULL | |
| subject | varchar(20) | YES | | NULL | |
| marks | int(1) | YES | | NULL | |
| id | int(10) | NO | PRI | NULL | auto_increment |
+---------+-------------+------+-----+---------+----------------+