gpt4 book ai didi

php - Mysql 仅当新行与前一行不同时才插入新行

转载 作者:行者123 更新时间:2023-11-30 01:27:04 24 4
gpt4 key购买 nike

您好,我已经阅读了很多有关它的问题,但我还没有找到问题的答案。问题是这样的:我在 MYSQL 中有一个表,其结构如下:

CREATE TABLE`Danni_Prekusvachi` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`prekusvach_id` int(11) NOT NULL,
`data` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`IzkOtZashtita` bit(1) NOT NULL,
`VklPrek` bit(1) NOT NULL,
`cVkl` bit(1) NOT NULL,
`cIzkl` bit(1) NOT NULL,
`greshki` text NOT NULL,
`komentari` varchar(255) NOT NULL,
`prava_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `prekusvach_id` (`prekusvach_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `Danni_Prekusvachi` (`id`, `prekusvach_id`, `data`, `IzkOtZashtita`, `VklPrek`, `cVkl`, `cIzkl`, `greshki`, `komentari`) VALUES
(1, 1, '2013-07-25 13:07:24', b'1', b'0', b'0', b'1', '', ''),
(2, 1, '2013-07-25 13:07:25', b'1', b'0', b'0', b'1', '', '');

ALTER TABLE `Danni_Prekusvachi`
ADD CONSTRAINT `Danni_Prekusvachi_ibfk_1` FOREIGN KEY (`prekusvach_id`) REFERENCES `Prekusvachi` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE;

我大约每秒插入一次数据。我想插入数据如果冒号之一IzkOtZashtitaVklPrekcVklcIzkl 已更改其值。现在我正在考虑用 php 检查最后插入的行是否相同,但我的数据库将有大约 50000 行,因此随着数据库变大,速度会变慢。

有没有办法在一个查询中进行检查和插入,或者我必须调用它两次来检查值?

编辑:我只想在与具有相同 prekusvach_id 的最后插入行相比值发生变化的情况下插入。假设在一秒钟内 cVkl 的值从 1 变为 0,我应该插入新行。但如果 cVkl 的值仍然相同(1 比 1),我不应该插入新行

最佳答案

您可以使用触发器。更新时有触发器。或者您只需使用易于设置的 php 查询并检查值是否有更改。少于 100 万条记录的数据库往往相当快,但您还应该不时进行重新索引,以便您的查询更快。

关于php - Mysql 仅当新行与前一行不同时才插入新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17879400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com