我有一张桌子:
CREATE TABLE IF NOT EXISTS degree (
userId INT UNSIGNED NOT NULL,
university VARCHAR(100),
degree VARCHAR(30),
field VARCHAR(100),
graduation INT UNSIGNED,
PRIMARY KEY (userId, university, degree, field, graduation)
);
此界面上还有一个“删除学位”按钮,但是当用户在UI上删除某个学位时,我不知道如何识别degree
表中要删除的行。
也许我必须在我的表中添加id
行,当用户更新度数时,我必须从表中获取该用户的所有度数,然后删除这些不再存在的行?
答案 0 :(得分:4)
您的主键是(userId,university,degree,field,graduation),这意味着需要所有这些信息来唯一标识一行。而是添加一个自动递增的主键。然后将该值传递给隐藏字段中的UI。单击删除的度数时,请检查该值,然后删除相应的行。
像这样创建你的表:
CREATE TABLE IF NOT EXISTS degree (
ID int NOT NULL AUTO_INCREMENT,
userId INT UNSIGNED NOT NULL,
university VARCHAR(100),
degree VARCHAR(30),
field VARCHAR(100),
graduation INT UNSIGNED,
PRIMARY KEY (ID)
);
创建一个隐藏字段来存储行ID,其中####是后端生成的行的值:
<input type="hidden" id="rowID" value="####" />
或者如果您不想使用和ID:
DELETE FROM degree
WHERE userId = '####'
AND university = '####'
AND degree = '####'
AND field = '####'
AND graduation = ####;
在阅读了关于问题的后续跟踪后,我没有删除按钮实际上从UI中删除了学位。我想让它隐藏学位并设置一个学位被删除的值。
<input type="hidden" id="deleted" value="false" />
然后将此值从false更改为true,您应该拥有需要知道的所有内容。