【问题标题】:Can't update mysql table with insert无法使用插入更新 mysql 表
【发布时间】:2012-10-05 22:04:01
【问题描述】:

我在同一个库中有一组相同的表,使用以下命令创建:

CREATE TABLE $current_date (
  call_state varchar(10),
  call_rate smallint(6), 
  ip-address varchar(15), 
  comment varchar(70)
) DEFAULT CHARSET=utf8;

除了“评论”字段外,新鲜的一天会填充一次值。填写上述字段的规则是。

INSERT INTO $current_date (comment)
SELECT comment FROM $yesterday_date WHERE call_state='-';
-- ('call_state' may be + or - or +-)

MySQL 响应是:

查询正常,17 行受影响(0.02 秒)
记录:17 次重复:0 警告:0

但实际上$current_date 表中没有任何变化 - 所有评论单元格仍然是NULL
谁能指出我填满专栏的方法?

【问题讨论】:

  • 要更新一个值,最好使用 UPDATE,而不是 INSERT
  • 如何确定 $current_date 表的哪些行应该更新其 cmets? $yesterday_date 和 $current_date 中的行之间是否存在关系?
  • 我应该做的是用 $yesterday_table.comment 更新每个 $current_date.comment(两行具有相同的相似值),其中 $current_date.comment 是'-'。

标签: mysql


【解决方案1】:

插入
命令INSERT 用于将新行添加到表中。如果您收到“查询正常,受影响的 17 行”响应,那么之前的现有行都没有改变,但行数确实增加了 17。

INSERT INTO table (column1, column2) VALUES(value1, value2);

更新
如果要更新现有行,请使用命令 UPDATE。 “更新”不添加任何行。它会更改现有行的内容。

UPDATE table SET column1=value1, column2=value2 WHERE column3=value3;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多