首页 > 解决方案 > 准备好的批次/批量插入 w/ 生成的列

问题描述

我的辅助函数处理准备好的批量插入有问题。如果有生成的列,助手会中断,因为Column count doesn't match value count at row....

我正在使用的语句是$sql = "INSERT INTO ".$table." VALUES ".$values;

我认为这不会是一个问题,因为它是一个生成和存储的列。有没有办法解决这个问题而不必指定我要插入的列?可能完全忽略此列?我看到的唯一用途IGNORE是行。

标签: phpmysql

解决方案


您必须列出除生成的列之外的所有列

就像你在例子中看到的

CREATE TABLE triangle (
  sidea DOUBLE,
  sideb DOUBLE,
  sidec DOUBLE AS (SQRT(sidea * sidea + sideb * sideb))
);
INSERT INTO triangle (sidea, sideb) VALUES(1,1),(3,4),(6,8);

如您所见,将生成 sidec,因此不会将其放入 INSERT 子句


推荐阅读