mysql error 1292
朋友問一個問題:
delete時出現一個warning 1292.
重現:
mysql> create table test (id int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test values (100);
Query OK, 1 row affected (0.00 sec)
mysql> delete from test where id='100a';
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '100a' |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)
第一感覺 這個問題 應該是sql_mode 引起的,檢視並修改sql_mode後,還是一樣的情況。
mysql> show variables like '%sql_m%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| sql_mode | NO_ENGINE_SUBSTITUTION |
+---------------+------------------------+
1 row in set (0.00 sec)
mysql> set global sql_mode ='STRICT_ALL_TABLES';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[root@song ~]# mysql -uroot -ptest
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.6.20-ucloudrel1-log Source distribution
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> insert into test values (100);
Query OK, 1 row affected (0.00 sec)
mysql> delete from test where id='100a';
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '100a' |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)
mysql> show variables like '%sql_m%';
+---------------+-------------------+
| Variable_name | Value |
+---------------+-------------------+
| sql_mode | STRICT_ALL_TABLES |
+---------------+-------------------+
1 row in set (0.00 sec)
他真正後臺執行的是什麼呢?
又開始想他是如何解析sql的,未果。
換個角度一想,從binlog中可以看出來, 得到的結果是:
### DELETE FROM `test`.`test`
### WHERE
### @1=100 /* INT meta=0 nullable=1 is_null=0 */
這也就是轉換後的sql的。
delete時出現一個warning 1292.
重現:
mysql> create table test (id int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test values (100);
Query OK, 1 row affected (0.00 sec)
mysql> delete from test where id='100a';
Query OK, 1 row affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '100a' |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from test;
Empty set (0.00 sec)
第一感覺 這個問題 應該是sql_mode 引起的,檢視並修改sql_mode後,還是一樣的情況。
mysql> show variables like '%sql_m%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| sql_mode | NO_ENGINE_SUBSTITUTION |
+---------------+------------------------+
1 row in set (0.00 sec)
mysql> set global sql_mode ='STRICT_ALL_TABLES';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
[root@song ~]# mysql -uroot -ptest
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 35
Server version: 5.6.20-ucloudrel1-log Source distribution
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> insert into test values (100);
Query OK, 1 row affected (0.00 sec)
mysql> delete from test where id='100a';
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> show warnings;
+---------+------+------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: '100a' |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)
mysql> show variables like '%sql_m%';
+---------------+-------------------+
| Variable_name | Value |
+---------------+-------------------+
| sql_mode | STRICT_ALL_TABLES |
+---------------+-------------------+
1 row in set (0.00 sec)
他真正後臺執行的是什麼呢?
又開始想他是如何解析sql的,未果。
換個角度一想,從binlog中可以看出來, 得到的結果是:
### DELETE FROM `test`.`test`
### WHERE
### @1=100 /* INT meta=0 nullable=1 is_null=0 */
這也就是轉換後的sql的。
轉載請註明源出處
QQ 273002188 歡迎一起學習
QQ 群 236941212
oracle,mysql,mongo 相互交流
QQ 273002188 歡迎一起學習
QQ 群 236941212
oracle,mysql,mongo 相互交流
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25099483/viewspace-2059744/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ERROR 1292 (22007): Truncated incorrect DOUBLE value 和ORA-01722: invalid numberError
- MySQL error 錯 誤 碼MySqlError
- mysql 配置log_errorMySqlError
- mysql crash with disk sector errorMySqlError
- 【MySql】MySQL Replication Fatal Error 1236MySqlError
- MySQL ERROR Got an error reading communication packetsMySqlErrorGo
- mysql Unknown error 1054MySqlError
- MySQL error log和bin logMySqlError
- error 1270 mysql主從ErrorMySql
- MYSQL SOURCE報錯 ERROR: ASCIIMySqlErrorASCII
- Mysql-error code彙總MySqlError
- error:package mysql-client is not relocatableErrorPackageMySqlclient
- mysql之 [ERROR] InnoDB: Unable to lock ./ibdata1, error: 11MySqlError
- Dr.Elephant mysql connection errorMySqlError
- mysql報錯ERROR 1093MySqlError
- 【Mysql】Last_SQL_Error: 1594MySqlASTError
- 【MySQL】ERROR 1093 You canMySqlError
- MySQL Replication Fatal Error 1236MySqlError
- ads1292硬體電路除錯總結除錯
- MySQL "ERROR 1010(HY000):Error dropping database(canMySqlErrorDatabase
- MySQL ERROR 1040: Too many connectionsMySqlError
- Dr.Elephant mysql connection error薦MySqlError
- [ERROR] Can't open the mysql.plugin tableErrorMySqlPlugin
- MySQL報錯 Error_code: 1045MySqlError
- MySQL ERROR 1698 (28000) 錯誤MySqlError
- MySQL Migration Toolkit Java JRE errorMySqlJavaError
- Error: package MySQL-Cluster-server-gpl is not relocatableErrorPackageMySqlServer
- MysqL錯誤之_ERROR! MySQL server PID file could not be found!MySqlErrorServer
- error:'Can'tconnecttolocalMySQLserverthroughsocket'/var/lib/mysql/mysql.sock'(2)'ErrorMySqlServer
- 【Mysql】Slave_SQL_Running: No:Last_Error: Error :1032/1062MySqlASTError
- docker mysql mysqld: Error on realpath() on ‘/var/lib/mysql-files‘ No such file or directoryDockerMySqlError
- 【MySQL】MySQL 5.7 error和warnings無具體資訊顯示MySqlError
- 【MySQL】5.6.x InnoDB Error Table mysql.innodb_table_stats not foundMySqlError
- StartingMySQL.ERROR!TheserverquitwithoutupdatingPIDfile(/data/mysql/mysql.pid).MySqlErrorServerUI
- 【MySQL】mysqldump Error 3024: Query execution was interruptedMySqlError
- mysql [ERROR] Can't create IP socket: Permission deniedMySqlError
- 【Mysql】Last_Errno: 1755--parallel mode errorMySqlASTParallelError
- MYSQL ERROR 1146 Table doesnt exist 解析MySqlError