0

私は Yii フレームワークに不慣れで、このコードが正しく機能しない理由を理解できないようです。save() 関数を呼び出すとき、ID が UUID で自動生成されるように、データベース挿入トリガーをトリガーする必要がありますか? はいの場合、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 に答える