pingcap/tidb

unexpect error result when insert too long data with unimportant suffix to varchar column

Open

#8.280 aberto em 12 de nov. de 2018

Ver no GitHub
 (2 comments) (0 reactions) (0 assignees)Go (6.186 forks)batch import
help wantedpriority/P4sig/executiontype/compatibility

Métricas do repositório

Stars
 (40.090 stars)
Métricas de merge de PR
 (Mesclagem média 14d 4h) (346 fundiu PRs em 30d)

Description

Bug Report

  1. What did you do? If possible, provide a recipe for reproducing the error.
CREATE TABLE `history1` (
  `h_c_id` int(11) DEFAULT NULL,
  `h_c_d_id` tinyint(4) DEFAULT NULL,
  `h_c_w_id` smallint(6) DEFAULT NULL,
  `h_d_id` tinyint(4) DEFAULT NULL,
  `h_w_id` smallint(6) DEFAULT NULL,
  `h_date` datetime DEFAULT NULL,
  `h_amount` decimal(6,2) DEFAULT NULL,
  `h_data` varchar(24) DEFAULT NULL,
  KEY `fkey_history_11` (`h_c_w_id`,`h_c_d_id`,`h_c_id`),
  KEY `fkey_history_21` (`h_w_id`,`h_d_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

set sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

INSERT INTO history1  (h_c_d_id, h_c_w_id, h_c_id, h_d_id,  h_w_id, h_date, h_amount, h_data)  VALUES (1,3,1450,1,3,NOW(),3242,'name-rwmwt name-uzqka       ');
  1. What did you expect to see?
Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> show warnings;
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
| Level | Code | Message                                                                                                                                                   |
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
| Error | 1064 | You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'warning' at line 1 |
+-------+------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
  1. What did you see instead?
mysql> INSERT INTO history1  (h_c_d_id, h_c_w_id, h_c_id, h_d_id,  h_w_id, h_date, h_amount, h_data)  VALUES (1,3,1450,1,3,NOW(),3242,'name-rwmwt name-uzqka       ');
ERROR 1406 (22001): Data too long for column 'h_data' at row 1
  1. What version of TiDB are you using (tidb-server -V or run select tidb_version(); on TiDB)?
Git Commit Hash: None
Git Branch: None
UTC Build Time: None
GoVersion: None
Race Enabled: false
TiKV Min Version: 2.1.0-alpha.1-ff3dd160846b7d1aed9079c389fc188f7f5ea13e
Check Table Before Drop: false

Guia do colaborador