php – 根据最后一条记录插入一行列值

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 根据最后一条记录插入一行列值脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在表格中插入新添加的产品.但要这样做,我需要检查最后插入产品的SKU并将其增加1并插入新产品详细信息. SKU就像SKUNXXXXX – X是一个数字.无法更改表结构.

@H_403_8@

我能想到的可能的解决方案是@H_403_8@

>使用Order by和limIT 1获取最后一行.
>用空字符串替换“SKUN”并将数字增加1
>插入包含产品详细信息和增加的SKU值的记录@H_403_8@

但这种情况可能会产生问题(虽然我不确定).问题是 – 如果只是在获取最后一条记录之后,在插入新产品详细信息之前,另一个请求进入并获得相同的最后一条记录?在这种情况下,两种产品都具有相同的SKU.@H_403_8@

请让我知道如何解决这种情况.@H_403_8@

解决方法

一种选择是创建一个自动增量id列,然后使用它来为每个产品插入时创建SKU.然后可以使用在INSERT之后触发的触发器为新插入的产品分配SKU.但是,MySQL不允许触发器修改触发它的表.

@H_403_8@

但是,这里有一个可能很容易的解决方法.如果您的SKU值实际上总是具有SKUNXXXXX格式,其中XXXXX是某个数字,那么您只需添加一个自动增量列,并在查询时动态创建SKU值.因此,您可以创建一个名为PRoducts的表,其中包含以下列:@H_403_8@

@H_403_8@

CREATE TABLE products
(
    id INT(11) NOT NULL AUTO_INCREMENT,name VArchAR(55),...
);

每次对产品执行INSERT时,id列将自动MysqL递增.当您想要获取SKU时,您可以简单地执行以下查询:@H_403_8@

@H_403_8@

SELECT id,name,CONCAT('SKUN',id) AS `SKU`
From products
WHERE name = 'someproduct'

如果您希望SKU编号不是永久的(即,一旦分配给给定产品,可以将其重新分配给另一个新产品),那么您可以考虑重置自动增量ID列q.v. this SO post获取更多信息.@H_403_8@

脚本宝典总结

以上是脚本宝典为你收集整理的php – 根据最后一条记录插入一行列值全部内容,希望文章能够帮你解决php – 根据最后一条记录插入一行列值所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。