sql - 将表达式转换为数据类型 int 的算术溢出错误,我该如何解决?
问题描述
这是创建表的代码。
CREATE TABLE CUSTOMERS
(
Customer_ID INT NOT NULL,
CHECK(Customer_ID <= 11),
First_Name varchar(20) NOT NULL,
Last_Name varchar(30),
Home_Street varchar(30),
Home_City varchar(20),
Home_State varchar(2),
Home_Zip varchar(5),
PhoneNumber varchar(11) NOT NULL
);
ALTER TABLE CUSTOMERS
ADD CONSTRAINT PK_CUSTOMERS PRIMARY KEY(Customer_ID);
然后我尝试将数据(使用此代码)插入表中,这就是我得到这个错误的地方。
INSERT INTO dbo.CUSTOMERS(Customer_ID, First_Name, Last_Name, Home_Street, Home_City, Home_State, Home_Zip, PhoneNumber)
VALUES (11223344556, 'John', 'Doe', '1234 Hand Street', 'Wahiawa', 'HI', 96786, 2535551267);
我做错了什么,我能做些什么来解决这个问题?
解决方案
据我了解,您正在检查长度,Customer_ID <=11
因此您应该提到 len(Customer_ID)<=11
它会起作用,并且您应该将 Customer_ID 的数据类型更改 int
为bigint
CREATE TABLE CUSTOMERS
(
Customer_ID bigINT NOT NULL,
CHECK(len(Customer_ID)<=11),
First_Name varchar(20) NOT NULL,
Last_Name varchar(30),
Home_Street varchar(30),
Home_City varchar(20),
Home_State varchar(2),
Home_Zip varchar(5),
PhoneNumber varchar(11) NOT NULL
);
ALTER TABLE CUSTOMERS
ADD CONSTRAINT PK_CUSTOMERS
PRIMARY KEY(Customer_ID);
INSERT INTO dbo.CUSTOMERS(Customer_ID,First_Name,Last_Name,Home_Street,
Home_City,Home_State,Home_Zip,PhoneNumber)
VALUES(11223344556,'John','Doe','1234 Hand Street',
'Wahiawa','HI',96786,2535551267);
推荐阅读
- c++ - 如何在 C++ 中为 std::list 参数设置默认值?
- c++ - 按空格分割字符串并将列输出到不同的数组中
- angular - 如何构建项目以便只有 index.html 位于根目录?
- python - numpy 随机选择和 networkx 图表列表
- django-rest-framework - 如何删除 ViewSet 中的任何文件
- php - 使用 PHP 变量在 MySQLi 中的 Carousel 中显示图像
- android - WebView 没有在 Android 中加载本地 HTML?
- java - 通过同步两个本地存储的数据库
- excel - 将特定文本从 Word 文档复制到 Excel
- ruby-on-rails - 为什么我只获得最后一个与包含关联的记录?