gpt4 book ai didi

mysql - 创建一个触发器,用于将客户端 ip 地址放入 MySQL 的列中

转载 作者:行者123 更新时间:2023-11-30 22:07:02 24 4
gpt4 key购买 nike

CREATE TABLE `project` (
`prj_id` int(11) NOT NULL AUTO_INCREMENT,
`prj_name` varchar(400) NOT NULL,
`prj_customer_id` int(11) NOT NULL,
`prj_url` varchar(400) NOT NULL,
`prj_description` varchar(400) NOT NULL,
`prj_status` int(11) NOT NULL,
`prj_member_id` int(11) NOT NULL,
`prj_crtd_by` varchar(50) NOT NULL,
`prj_crtd_dt` datetime NOT NULL,
`prj_updt_by` varchar(50) NOT NULL,
`prj_updt_dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`prj_last_ip` varchar(50) NOT NULL,
PRIMARY KEY (`prj_id`),
KEY `fk_project_customer_customer_id` (`prj_customer_id`),
KEY `fk_project_member_member_id` (`prj_member_id`),
CONSTRAINT `fk_project_customer_customer_id` FOREIGN KEY (`prj_customer_id`) REFERENCES `customer` (`cus_id`),
CONSTRAINT `fk_project_member_member_id` FOREIGN KEY (`prj_member_id`) REFERENCES `member` (`mem_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我想为这个表项目的三列创建触发器。我想为 prj_crtd_dt 的列创建触发器,它在创建时插入日期,prj_updt_dt 在更新时插入日期,prj_last_ip 它必须从创建它的地方更新系统的 IP 地址。

我已经为日期列创建了触发器,我想知道如何为 ip 地址创建触发器
在插入客户之前创建触发器 create_date_of_customer
对于每一行
SET NEW.cus_crtd_dt = NOW();
NEW.cus_updt_dt = NOW();

最佳答案

您的问题没有说明。但是根据我的理解,以下内容会对您有所帮助。你见过https://msdn.microsoft.com/en-us/library/ms189799.aspx吗?

已编辑

这是针对您已编辑的问题。要获取 IP 地址,您必须启用 cmdshell。但是,启用 xp_cmdshell 存在安全缺陷,我不会建议您这样做。如果你可以使用服务器名而不是服务器 IP,那么试试这个,

SET NEW.cus_crtd_dt = NOW();
NEW.cus_updt_dt = NOW();
NEW.cus_last_ip= SERVERPROPERTY('MachineName');

或者这个,

SET NEW.cus_crtd_dt = NOW();
NEW.cus_updt_dt = NOW();
NEW.cus_last_ip= @@SERVERNAME;

关于mysql - 创建一个触发器,用于将客户端 ip 地址放入 MySQL 的列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41356644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com