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


can i get primary key value and extension after inserting in database using triggers in MySQL

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

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

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

我是MySQL的新手,对MySQL是否可以执行这样的操作知之甚少。

要在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);