0

我是 Yii 框架的新手,我似乎无法理解为什么这段代码不能正常运行。当我调用 save() 函数时,是否应该触发数据库插入触发器以便使用 UUID 自动生成 ID?如果是,它不工作,因为它保持为 NULL。有什么建议吗?

$passwordRequest = new PasswordResetRequest;
$passwordRequest->userId = 2162;
$passwordRequest->save();

echo $passwordRequest->id;
echo "test";

日志:

-- Full Trigger DDL Statements
-- Note: Only CREATE TRIGGER statements are allowed
DELIMITER $$

USE `derp_app`$$

CREATE
DEFINER=`root`@`%`
TRIGGER `derp_app`.`tbl_passwordReset_BINS`
BEFORE INSERT ON `derp_app`.`tbl_passwordReset`
FOR EACH ROW
SET NEW.id = uuid();
-- Edit trigger body code below this line. Do not edit lines above this one$$
4

1 回答 1

1
DROP TRIGGER IF EXISTS  `tbl_passwordReset_BINS`;
DELIMITER |
CREATE TRIGGER `tbl_passwordReset_BINS`
BEFORE INSERT ON `tbl_passwordReset` 
FOR EACH ROW
BEGIN
SET NEW.id = uuid();
END |
DELIMITER ;

这应该有效。使用您的 dbuser 登录 mysql 控制台(真的避免使用 root),使用您的数据库,插入触发器。在架构中检查它

SHOW TRIGGERS;

必须工作。我想知道你用什么128位ID?你想象一下这个字段的索引有多大,即使有 1m 条记录?

于 2013-07-23T07:18:52.843 回答