Mysql大型SQL查询,剪切2000个字符

时间:2012-09-23 19:52:07

标签: mysql heidisql

使用HeidiSQL数据库客户端,我收到large SQL query (4.0 KB), snipped at 2,000 characters错误。任何人都知道为什么会这样,我需要在下表中进行更改

请告诉我代码的哪些部分需要更新

-- -----------------------------------------------------
-- Table `warrington_central`.`business`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `warrington_central`.`business` (
  `id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT ,
  `user_id` BIGINT(20) UNSIGNED NOT NULL ,
  `alias_title` VARCHAR(255) NOT NULL ,
  `primary_category` SMALLINT(5) UNSIGNED NOT NULL ,
  `secondary_category` SMALLINT(5) UNSIGNED NOT NULL ,
  `tertiary_category` SMALLINT(5) UNSIGNED NULL ,
  `title` VARCHAR(255) NOT NULL ,
  `premisis_name` VARCHAR(50) NOT NULL ,
  `address_id` BIGINT(20) UNSIGNED NOT NULL ,
  `geolocation_id` BIGINT(20) UNSIGNED NULL ,
  `logo_path` VARCHAR(100) NOT NULL ,
  `telephone_number` VARCHAR(25) NOT NULL ,
  `mobile` VARCHAR(25) NOT NULL ,
  `fax_no` VARCHAR(25) NOT NULL ,
  `website` VARCHAR(100) NOT NULL ,
  `email` VARCHAR(60) NOT NULL ,
  `opening_times` VARCHAR(5000) NOT NULL ,
  `history_experience` VARCHAR(5000) NOT NULL ,
  `description` TEXT NOT NULL ,
  `no_of_employees` MEDIUMINT(8) UNSIGNED NOT NULL ,
  `date_establised` DATE NULL ,
  `show_google_map` ENUM('0','1') NOT NULL ,
  `show_street_view` ENUM('0','1') NOT NULL ,
  `show_comment` ENUM('0','1') NOT NULL ,
  `add_contact_form` ENUM('0','1') NOT NULL ,
  `viewable_to_members_only` ENUM('0','1') NOT NULL ,
  `link_to_user_profile` ENUM('0','1') NOT NULL ,
  `admin_package_id` TINYINT(1) UNSIGNED NOT NULL ,
  `package_start_date` DATETIME NOT NULL ,
  `package_end_date` DATETIME NULL ,
  `package_comment` VARCHAR(500) NOT NULL ,
  `created_on` DATETIME NOT NULL ,
  `updated_by` BIGINT(20) UNSIGNED NOT NULL ,
  `updated_on` DATETIME NOT NULL ,
  `approved` ENUM('Inprocess','Yes','No') NOT NULL DEFAULT 'Inprocess' ,
  `visible` ENUM('0','1') NOT NULL DEFAULT '0' ,
  `hits` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0 ,
  `advertise_to` DATETIME NULL ,
  PRIMARY KEY (`id`) ,
  UNIQUE INDEX `alias_title` (`alias_title` ASC/* large SQL query (4.0 KB), snipped at 2,000 characters */
SHOW WARNINGS;

2 个答案:

答案 0 :(得分:3)

嗯,你也可以去工具>偏好>记录,并将“SQL日志中的行”设置为另一个值。

但正如@doublesharp所说,这只是一件美化事物。发送到服务器的查询肯定不会被删除。

答案 1 :(得分:2)

这似乎是HeidiSQL的一个功能,并不会影响您的查询运行。如果它产生错误或警告,您会在有关查询的评论被剪切为2,000个字符后看到它们。

请在此处查看源代码:http://code.google.com/p/heidisql/source/browse/trunk/source/main.pas?r=4127

prefLogSqlWidth := GetRegValue(REGNAME_LOGSQLWIDTH, DEFAULT_LOGSQLWIDTH);

然后使用此代码生成消息

// Shorten very long messages
Len := Length(Msg);
snip := (prefLogSqlWidth > 0) and (Len > prefLogSqlWidth);
IsSQL := Category in [lcSQL, lcUserFiredSQL];     if snip then begin
  Msg :=
    Copy(Msg, 0, prefLogSqlWidth) +
    '/* large SQL query ('+FormatByteNumber(Len)+'), snipped at ' +
      FormatNumber(prefLogSqlWidth) +
      ' characters */';
  end else if (not snip) and IsSQL then
    Msg := Msg + Delimiter;
  if not IsSQL then
    Msg := '/* ' + Msg + ' */';

似乎您可以在注册表中更改此值(http://code.google.com/p/heidisql/source/browse/trunk/source/const.inc?r=4133)

REGNAME_LOGSQLWIDTH = 'logsqlwidth';
DEFAULT_LOGSQLWIDTH = 2000;

关键是可能位于HKEY_CURRENT_USER\Software\HeidiSQL\Servers