English 中文(简体)
我的SQL/PHP,如果存在行文,或者在检查栏目并非独一无二时插入新的行文。
原标题:mySQL/PHP to update if the row exists or else insert when column to check is not unique
  • 时间:2009-10-10 03:38:36
  •  标签:

我已经读过关于REPLACE和INSERT ON DUPLICATE的主要询问,虽然我可以看到这些询问是多么有用,但似乎并没有为我的目的工作。 也许我的数据库设计偏离了它应该怎么办,但我希望我能够这样做。

我正试图 mo一个网上仓库,以教授自己本人的我的餐厅和实验室。 我正在录制一个假日,用于把个人 car车回去进行单独访问,并试图在我有问题的那儿试图检查该物品是否在车上。 我希望每个项目是每个用户独一无二的,但是,整个表格不应独一无二,否则会妨碍多个用户购买同一项目,会 t?

我迄今的表态如下:

 | Cart ID(key) | USER_ID(fk) | ItemNum | ItemQTY |

并且我基本上想看到,美国能源公司(ID)是否已经发展壮大;项目Num的零件。 如果他们这样做,我想把项目QTY+增补到项目QTY+上,然而,他们当中有许多人补充说,如果没有,则插入新的一行。

我是否必须先问一下,以便这样做?

最佳回答

传统购物汽车软件每用户有一只汽车,每当用户返回时,汽车就会恢复。 由于您有<代码>CartID和UserID,这给人一种印象,即用户能够有多个条码。

而最好有三个表格:Users,Carts &CartItems

Users,UserID,Carts , 以及诸如 OwnerrID(referencing Users.UserID, 和CartItems 。 CartID (referencing Carts.CartID),ItemID and Quantity.

你甚至可以更简单,因为用户只拥有一条Cart,你可以完全无视Cart表格,取代。 CartID with CartItems. OwnerrID (referencing 用户。

我希望这是有益的。

问题回答

一开始者...... 我认为,如果要检查一下,那就算不了。 然后,当你更熟悉“基地”和“我”时,开始积累你们的知识。

其他人可能不同意,但在学习新语言时,我想做事,然后才让他们“完美”。

您可以撰写一份储存程序,并利用所储存的程序处理这些插入物。

你们需要了解所储存的书写程序,并从PHP中执行这些程序。

此外,在所储存的程序中,你需要执行不止一个问题,但根据你的申请,你将像对程序发出单一呼吁。

HTH.

我认为,你们需要一个多彩的独一无二的关键,即:

alter table my_table add unique( CartID, ItemNumber );

然后,你可以做到:

insert into my_table values( 1,  joe , 12345, 1 ) on duplicate key update ItemQTY = ItemQTY + 1;




相关问题