mysql - 我需要将新项目添加到 SQL 表中并更新旧项目

标签 mysql sql

这可能是一个愚蠢的问题,但老实说它让我难住了。

我有一个现有的表,我想用新项目更新它。但是,如果旧项目在其他地方发生了更改,那么我也希望它能够自动更新。

我已将 $eid 设置为唯一标识符,因此表不会重复。我用它来添加新项目。

mysqli_query($con,"INSERT INTO `notification` (`nid` ,`eid` ,`subject` ,`active` ,`date`)VALUES (NULL , '$eid[$i]', '$subject[$i]',  '$active[$i]', '$eventdate[$i]')");

通过第二个查询,我尝试使用当前更新的信息更新现有表。

mysqli_query($con,"UPDATE `notification` SET `nid`=NULL,`eid`='$eid[$i]',`subject`='$subject[$i]',`active`='$active[$i]',`date`='$eventdate[$i]' WHERE `active` = 0");

但是第二个查询似乎不起作用。

最佳答案

有关 MySQL 抛出的错误的更多详细信息?

但是,如果列 nid 是您的主键,则它不能为 NULL

如果您不想更新它,只需在更新查询中跳过它:

mysqli_query($con,"UPDATE `notification` SET `eid`='$eid[$i]',
`subject`='$subject[$i]',`active`='$active[$i]',`date`='$eventdate[$i]' 
WHERE `active` = 0");

关于mysql - 我需要将新项目添加到 SQL 表中并更新旧项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22980408/

相关文章:

sql - In out 参数在 Mysql 中无法正常工作

javascript - 用于格式化 SQLFormat.org 之类的 SQL 查询的本地 JavaScript 函数在没有 Web 调用的情况下执行?

SQL Server 触发器更新列值

mysql - 删除查询错误: Every derived table must have its own alias

mysql - 存储过程中的 SQL 变量 ORDER BY 子句

PHP:我只能使用这个函数一次(在 while 循环中使用)

android - 如何删除 SQL 数据库上的行

java - Hibernate HQL 带有 Likes 的意外标记

mysql - MySQL 中的 Like 子句未按预期显示输出

sql - MySQL 错误代码 : 1005