のトリガの更新を行うことができますが、それは、ユーザーとメールの一部であり、具体的何その人のすべてのレジストリに私に修正を行い、更新のトリガーを作成する瞬間に、私は私はどのように私は、彼らは人とそのユーザーとのメールの個人的な記録を入力して人々のBitacoraのは、レジストリの一部のために、それがうまく私にすべてのデータを保持してい一人
CREATE TRIGGER Usuarios_AModificar AFTER UPDATE ON usuarios FOR EACH ROW UPDATE bitacorapersonas SET usuarioNuevo = NEW.usuario, correoNuevo = NEW.correo, correoViejo=old.correo,activacionNueva = new.activacion, activacionVieja=old.activacion WHERE cedula = NEW.usuarios_cedula
更新のトリガを行うには、このコードを使用しています私のテーブルは次の通りです
CREATE TABLE `usuarios` (
`id` int(10) NOT NULL,
`correo` varchar(80) DEFAULT NULL,
`usuario` varchar(10) DEFAULT NULL,
`password` varchar(100) DEFAULT NULL,
`last_session` datetime DEFAULT NULL,
`activacion` int(15) NOT NULL DEFAULT '0',
`token` varchar(40) NOT NULL,
`token_password` varchar(100) NOT NULL,
`password_request` int(11) NOT NULL DEFAULT '0',
`id_tipo` varchar(20) DEFAULT NULL,
`usuarios_cedula` varchar(13) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `personas` (
`cedula` varchar(13) NOT NULL,
`nombres` varchar(30) NOT NULL,
`apellidos` varchar(20) NOT NULL,
`sexo` varchar(10) NOT NULL,
`telefono` varchar(20) NOT NULL,
`direccion` text NOT NULL,
`fnacimiento` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
私のビットテーブルは次のとおりです
CREATE TABLE `bitacorapersonas` (
`idBitacora` int(20) NOT NULL,
`accion` varchar(20) NOT NULL,
`fecha` datetime NOT NULL,
`cedUsuario` varchar(20) DEFAULT NULL,
`nombreUsuario` varchar(13) NOT NULL,
`tipoUsuario` varchar(15) NOT NULL,
`cedula` varchar(13) NOT NULL,
`nombreNuevo` varchar(25) DEFAULT NULL,
`nombreViejo` varchar(20) DEFAULT NULL,
`apellidoNuevo` varchar(30) NOT NULL,
`apellidoViejo` varchar(30) DEFAULT NULL,
`sexoNuevo` varchar(10) NOT NULL,
`sexoViejo` varchar(10) DEFAULT NULL,
`telefonoNuevo` varchar(15) NOT NULL,
`telefonoViejo` varchar(15) DEFAULT NULL,
`direccionNuevo` varchar(40) NOT NULL,
`direccionViejo` varchar(40) DEFAULT NULL,
`fnacimientoNuevo` date NOT NULL,
`fnacimientoViejo` date DEFAULT NULL,
`usuarioNuevo` varchar(15) NOT NULL,
`correoNuevo` varchar(15) NOT NULL,
`correoViejo` varchar(15) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
人の例のデータを更新する際に、メールやユーザーものですので、私は知らない最初の時間が十分にそれをしないと、私は二度目の修正時に最初のレコードにも
Iに変更されますすでに置く場所cedula = users_cedulaが、それでもその人のすべてのレコードを変更し、それはあなたの次のテストの前に私に
あなたがしようとしているものは明らかではありませんする。 'bitacorapersonas'テーブルも追加しませんでした。それは何らかの履歴テーブルかレジストリ要求のテーブルですか?次に、そこに挿入して、更新しないでください。そうでない場合は、更新する行を特定する必要があります。現在は、すべての行を 'WHERE cedula = NEW.usuarios_cedula'で更新します。私たちはあなたが意味するかもしれない(単一の)行を知りません。 – Solarflare
は、私はすでにどこcedula = users_cedulaが、それでもその人のすべてのレコードを変更し、それは私が、例えば、私が初めてジョンの電子メールを変更した場合私は何をする必要がある – Lissi29