gpt4 book ai didi

mysql - MySQL建表时有两个主键

转载 作者:行者123 更新时间:2023-11-29 07:03:05 25 4
gpt4 key购买 nike

我是 MySql 新手!我正在尝试创建一个具有 2 个主键或通常称为复合键的表。

CREATE TABLE MovedProduct
(
MigrationId nvarchar(150) NOT NULL,
ContextKey nvarchar(300) NOT NULL,
Model varbinary(65535) NOT NULL,
ProductVersion nvarchar(32) NOT NULL,
primary key(MigrationId,ContextKey)
)

但是我遇到了一个我无法弄清楚的错误。

Error Code: 1071. Specified key was too long; max key length is 1000 bytes

我不知道如何减小键的大小,因为它们可以达到各自的大小。

为了创建我的表格,我需要做一些特殊的事情吗?

最佳答案

您应该减少所涉及字段的字段长度..因为某些字符集不仅仅使用一个字节来表示一个字符,更是如此..当这些文件存储时可能会超出键长度的限制

例如:

CREATE TABLE MovedProduct
(
MigrationId nvarchar(64) NOT NULL,
ContextKey nvarchar(128) NOT NULL,
Model varbinary(65535) NOT NULL,
ProductVersion nvarchar(32) NOT NULL,
primary key(MigrationId,ContextKey)
)

您的字符集使用 3 个字节来存储一个字符,那么在您的示例中您有 3*150 + 3*400 = 1650
而是 3*64 + 3*128 = 576

关于mysql - MySQL建表时有两个主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42677848/

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