使用MySQL中的触发器插入数据库后,我可以获得主键值和扩展名

时间:2013-11-21 07:29:40

标签: php mysql sql triggers

好吧,让我解释一下尽可能简单,基本上我有一个表doc_info,它存储有关上传文件的信息;如文件名,创建日期,上传等;

我想要的是在这个表上创建一个INSERT触发器,它将获得两件事,这个新插入行的主键ID和上传文件名的扩展名将在文档名称中;并连接它们并使用此连接值

更新同一行

实施例, 如果有人上传" document.docx",则ID将自动生成为x,文档名称将为document.docx,因此要存储的值为" x.docx"在同一行使用更新。

我是这个MySQL的新手,如果可以用MySQL执行这样的操作,我几乎不知道。

1 个答案:

答案 0 :(得分:1)

要在db中实现此类操作,您应该创建两个触发器:插入和更新后。它们应该像这样一个

delimiter |

CREATE TRIGGER changeProperty AFTER INSERT ON doc_info
  FOR EACH ROW
  BEGIN
    UPDATE doc_info SET doc_info.someProperty = CONCAT(doc_info.id, doc_info.extension) WHERE doc_info.id = NEW.id;
  END;
|

您可以通过以下表达式计算文件名的扩展名:SUBSTRING_INDEX(doc_id.fileName, '.', -1);

相关问题