gpt4 book ai didi

python - 在记录用户的列中插入数据,以检查谁在 python 中更新/创建

转载 作者:行者123 更新时间:2023-11-29 21:50:36 24 4
gpt4 key购买 nike

我有疑问:

"INSERT INTO mappings (id, service, created_at) 
VALUES(%s,%s)" % (id, service)

这里我想在created_at列值下插入有关登录用户的信息。

不想使用日期和时间。有人可以帮我解决这个问题吗?

最佳答案

我使用以下函数来获取用户名。

DROP FUNCTION IF EXISTS `GETUSERNAME`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `GETUSERNAME`() RETURNS char(16) CHARSET utf8
BEGIN
RETURN (SELECT
SUBSTRING_INDEX(USER(), '@', 1));
END
;;
DELIMITER ;

该函数解析 USER() 结果并将用户名与用户主机分开。如果您想获取主机,请使用SUBSTRING_INDEX(USER(), '@', -1)。然后插入一条记录

INSERT INTO `mappings` (`id`, `service`, `created_at`) 
VALUES(:param1, :param2, GETUSERNAME());

或您的代码副本:

"INSERT INTO mappings (id, service, created_at) 
VALUES(%s,%s,GETUSERNAME())" % (id, service)

您还可以在插入前触发器中执行此操作。那将是

DELIMITER ;;
CREATE TRIGGER `trbinsertmappings` BEFORE INSERT ON `mappings`
FOR EACH ROW BEGIN
SET NEW.created_at=GETUSERNAME();
END
;;
DELIMITER ;

如果你需要一个 id,那么我使用类似的函数:

DROP FUNCTION IF EXISTS `GETUSERID`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `GETUSERID`() RETURNS int(10)
BEGIN
DECLARE id_no INT DEFAULT -1;
select `id`
INTO id_no
FROM `tstaff`
WHERE `tstaff`.`user_name`=(SELECT SUBSTRING_INDEX(USER(), '@', 1))
LIMIT 1;

RETURN id_no;
END
;;
DELIMITER ;

关于python - 在记录用户的列中插入数据,以检查谁在 python 中更新/创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33688167/

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