一尘不染

mysql创建表查询中的行大小太大错误

mysql

我正在尝试使用以下查询创建表

Create Table PerformaceReport
(
campaignID int,
keywordID bigint,
keyword varchar(8000),
avgPosition decimal(18,6),
cost int,
clicks int,
 conv1PerClick int, 
 impressions int,
  day datetime,
  currency varchar(8000),
  account varchar(8000),
   timeZone varchar(8000),
    adGroup varchar(8000),
    adGroupState varchar(8000),
     approvalStatus varchar(8000),
     lowestPosition varchar(8000),
     campaign varchar(8000),
      campaignState varchar(8000),
       convManyPerClick int,
       totalConvValue decimal(18,6),
        maxCPCSource varchar(8000),
         clientName varchar(8000),
          destinationURL varchar(8000),
           device varchar(8000),
           firstPageCPC int,
            isNegative bit,
             matchType varchar(8000),
              maxCPC varchar(8000),
               maxCPM varchar(8000),
               highestPosition varchar(8000),
               qualityScore int,
               keywordState varchar(8000),
               viewThroughConv int)

我收到以下错误

#1118 - Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

任何人都可以让我知道如何避免此错误并使查询工作以创建表。


阅读 367

收藏
2020-05-17

共1个答案

一尘不染

该表中所有字段的总大小大于限制65535,这就是为什么您会收到此错误的原因。

您应该使用texttype而不是varchar长字符串。全部替换varchar(8000)text,它应该可以正常工作。

或者,甚至更好的是,使用适当的数据类型而不是“太大”的数据类型。您真的不需要存储8000个字符currency,对吗?

2020-05-17