私はこの表を持っています:
CREATE TABLE Vendors
(
VendorID NUMERIC(10) NOT NULL,
VendorName CHAR(50) NOT NULL,
VendorAddress VARCHAR(30) NULL,
VendorCityName VARCHAR(20) NOT NULL,
VendorStateName CHAR(2) NOT NULL,
VendorZip VARCHAR(10) NULL,
VendorContactName CHAR(50) NOT NULL,
VendorContactPhone VARCHAR(12) NOT NULL,
VendorContactEmail VARCHAR(20) NOT NULL,
VendorSpecialty CHAR(20) NOT NULL
CONSTRAINT VendorsPK PRIMARY KEY (VendorID)
);
そして、この挿入:
INSERT INTO Vendors(VendorID, VendorName, VendorAddress,
VendorCityName, VendorStateName, VendorZip, VendorContactName,
VendorContactPhone, VendorContactEmail, VendorSpecialty)
VALUES(151330, 'Hyperion', '77 West 66th Street', 'New York',
'NY', 10023, 'John Hinks', '212-337-6564',
'[email protected]', 'Popular fiction')
このステートメントで8152エラーが発生するのはなぜですか?
VendorContactEmail
は20バイトのみです。最初の行の電子メールアドレス(_[email protected]
_)はそれよりも長い-24バイトです。また、多くの電子メールアドレスが長くなります。電子メールアドレスの列に20文字のみを許可することにしたのは誰ですか?標準によれば、これはVARCHAR(320)
-_<localpart>
_の場合は64文字、_@
_の場合は1文字、_<domain>
_の場合は255文字にする必要があります。
エラーメッセージ自体については、犯人を見つけるのは、当時よりも簡単です。