【问题标题】:MySQL commit and rollbackMySQL 提交和回滚
【发布时间】:2009-08-18 13:17:44
【问题描述】:

我开发了一个网页,因为我遇到了这个问题。请看下文。

在用户表中我有以下字段:

  • 用户名
  • 密码
  • 地址
  • 电话
  • 电子邮件

在服务表中,我有以下字段:

  • Ser_name
  • ser_id
  • USER_Refid

所有这些都在 php 中的同一页面中。

当我在服务表中添加值时,它存储在相同的 USER_Refid 名称下。

例如用户 xxxx 将要添加服务意味着 USER_Refid 字段包含所有服务的相同名称。

我的问题是当用户在服务表中添加值而忘记在用户表中添加值时,意味着我想删除该特定用户插入的值。请帮我解决这个问题,在此先感谢。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    如果您的表是InnoDB,您可以对您的服务表使用FOREIGN KEY 约束:

    ALTER TABLE service_table ADD CONSTRAINT fk_service_user_refid FOREIGN KEY (USER_refid) REFERENCES user_table (USER_id)
    

    要将值添加到服务中,请创建一个带有会话 ID 的内存表,用您的服务填充它,然后当用户单击 Save 时,执行以下操作:

    • user_table 中为您的用户创建一个条目
    • 将临时表中的条目移动到service_table

    【讨论】:

    • 起初用户可以在不将值存储到用户表中的情况下向服务表添加值。[只需在该 Userid 字段中给出值,服务表将使用该值作为字段 USER_Refid]跨度>
    • 如果用户首先将值存储到用户表中,您的标准将适用
    • 为什么不先添加到用户表呢?如果没有用户表中的条目,您的服务表记录就不能存在,这更有意义。
    • 那么你的意思是你说可以在没有任何用户的情况下添加服务然后说你想删除谁添加服务而没有任何参考?
    • 这意味着我在 php 的一个页面中使用了所有这些。我要求用户先输入用户 ID 并将其设为只读。之后,他可以向服务表添加值。所以我可以为 USER_refid 字段获取只读字段值。添加许多服务后,用户单击全部保存按钮意味着我将值插入到用户表中。
    猜你喜欢
    • 2012-12-24
    • 2013-11-22
    • 2012-03-04
    • 2013-01-23
    • 2013-09-14
    • 2014-08-20
    • 2014-02-23
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多