gpt4 book ai didi

mysql - 在数据库中保留 int 特定长度

转载 作者:行者123 更新时间:2023-11-30 22:45:57 26 4
gpt4 key购买 nike

我想确保我的列 (accountNumber) 中的所有值都正好是 7 个字符长。我试过这个:

CREATE TABLE `account` (
`accountNumber` int(7) NOT NULL AUTO_INCREMENT,

...

CHECK (accountNumber >6),
CHECK (accountNumber <8),
PRIMARY KEY (`accountNumber`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

但是当我在数据库中输入一个长度不是 7 个字符的值时,它允许这样做。我做错了什么?

最佳答案

您可以使用触发器来做到这一点:

DELIMITER $$

CREATE TRIGGER example_before_insert_account
BEFORE INSERT ON account FOR EACH ROW
BEGIN
IF NEW.accountNumber < 1000000 OR NEW.accountNumber > 9999999
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Cannot add or update row: only 7 digit integers allowed';
END IF;
END;
$$

CREATE TRIGGER example_before_update_account
BEFORE UPDATE ON account FOR EACH ROW
BEGIN
IF NEW.accountNumber < 1000000 OR NEW.accountNumber > 9999999
THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Cannot add or update row: only 7 digit integers allowed';
END IF;
END;
$$

如果您的 MySQL 数据库不支持 SIGNAL,您可以使用 CALL,如下所示:

CALL `'Cannot add or update row: only 7 digit integers allowed'`;

注意:此代码未经测试,仅用于展示概念。

关于mysql - 在数据库中保留 int 特定长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29606772/

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