SQL 最大长度 LONGTEXT
SQL max size LONGTEXT
我创建了这个 table:
CREATE TABLE Hospital_MedicalRecord(
recNo CHAR(5),
patient CHAR(9),
doctor CHAR(9),
enteredOn DATETIME NOT NULL,
diagnosis LONGTEXT NOT NULL,
treatment TEXT(1000),
PRIMARY KEY (recNo, patient),
CONSTRAINT FK_patient FOREIGN KEY (patient) REFERENCES Hospital_Patient(NINumber),
CONSTRAINT FK_doctor FOREIGN KEY (doctor) REFERENCES Hospital_Doctor(NINumber)
ON DELETE CASCADE
);
如何使 diagnosis
包含一些长文本但不超过 2^24 字节?我调查了 LONGTEXT
但我找不到限制它的方法,因为我相信它可以达到 2^34?
使用MEDIUMTEXT
.
https://dev.mysql.com/doc/refman/8.0/en/string-type-overview.html
MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
A TEXT
column with a maximum length of 16,777,215 (224 − 1) characters. The effective maximum length is less if the value contains multibyte characters. Each MEDIUMTEXT
value is stored using a 3-byte length prefix that indicates the number of bytes in the value.
措辞有点奇怪。长度限制实际上是字节数,而不是字符数。
LONGTEXT 被限制为文件系统允许的最大 32 位系统它被限制为 2^32 即大约 4.000.000.000 个字符(如果你不使用多字节字符),我没有计算正是。
然后你有 2^24 个字符的 MEDIUMTEXT .. 大约 16.000.000 个字符。 TEXT 有 2^16 个字符的限制,这个限制要小得多,大约 64.000 个字符(如果你没有多字节)。
你需要的是 MEDIUMTEXT
我创建了这个 table:
CREATE TABLE Hospital_MedicalRecord(
recNo CHAR(5),
patient CHAR(9),
doctor CHAR(9),
enteredOn DATETIME NOT NULL,
diagnosis LONGTEXT NOT NULL,
treatment TEXT(1000),
PRIMARY KEY (recNo, patient),
CONSTRAINT FK_patient FOREIGN KEY (patient) REFERENCES Hospital_Patient(NINumber),
CONSTRAINT FK_doctor FOREIGN KEY (doctor) REFERENCES Hospital_Doctor(NINumber)
ON DELETE CASCADE
);
如何使 diagnosis
包含一些长文本但不超过 2^24 字节?我调查了 LONGTEXT
但我找不到限制它的方法,因为我相信它可以达到 2^34?
使用MEDIUMTEXT
.
https://dev.mysql.com/doc/refman/8.0/en/string-type-overview.html
MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
A
TEXT
column with a maximum length of 16,777,215 (224 − 1) characters. The effective maximum length is less if the value contains multibyte characters. EachMEDIUMTEXT
value is stored using a 3-byte length prefix that indicates the number of bytes in the value.
措辞有点奇怪。长度限制实际上是字节数,而不是字符数。
LONGTEXT 被限制为文件系统允许的最大 32 位系统它被限制为 2^32 即大约 4.000.000.000 个字符(如果你不使用多字节字符),我没有计算正是。
然后你有 2^24 个字符的 MEDIUMTEXT .. 大约 16.000.000 个字符。 TEXT 有 2^16 个字符的限制,这个限制要小得多,大约 64.000 个字符(如果你没有多字节)。
你需要的是 MEDIUMTEXT