Verificação do erro com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '' for column 'COLUMN_NAME' at row 1.
O erro é gerado ao inserir informações em uma determinada tabela do banco de dados MySQL, cujo o campo da Coluna não aceita o valor que está sendo inserido.
Vejamos os exemplos de como resolver o problema:
-- Primeiramente vamos conectar no ambiente de banco de dados MySQL:
root@serverexemplo:/var/run/mysqld#> mysql -u root --password=********
-- Verificar bancos de dados:
mysql> show databases;
+-------------------------+
| Database |
+-------------------------+
| information_schema |
| adm |
| prod |
| mysql |
| performance_schema |
| test |
+--------------------------+
9 rows in set (0.00 sec)
-- Conectar no banco de dados PROD:
mysql> use prod
-- Verificar versão do banco de dados PROD:
mysql> SHOW VARIABLES LIKE "%version%";
+--------------------------------+---------------------------------------------+
| Variable_name | Value |
+--------------------------------+---------------------------------------------+
| innodb_version | 5.6.36 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.6.36 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+--------------------------------+---------------------------------------------+
7 rows in set (0.01 sec)
-- Verificar geração de LOG do ambiente de banco de dados PROD :
mysql> SHOW VARIABLES LIKE "general_log%";
+--------------------+---------------------------------+
| Variable_name | Value |
+--------------------+---------------------------------+
| general_log | OFF |
| general_log_file | /var/lib/mysql/fsvrlx06.log |
+------------------+-----------------------------------+
-- Habilitar geração de LOG para apoiar análise do problema:
mysql> SET GLOBAL general_log = 'ON';
mysql> SHOW VARIABLES LIKE "general_log%";
+--------------------+---------------------------------+
| Variable_name | Value |
+--------------------+---------------------------------+
| general_log | ON |
| general_log_file | /var/lib/mysql/fsvrlx06.log |
+------------------+-----------------------------------+
-- Criação de tabela de Backup para testes:
mysql> create table TABLE_EXAMPLO as SELECT * FROM TABLE_EXAMPLE_BACKUP;
Query OK, 2163 rows affected (1.12 sec)
Records: 2163 Duplicates: 0 Warnings: 0
-- Validar Descrição da tabela de Backup Criada:
mysql> desc TABLE_EXAMPLE_BACKUP;
+---------------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------------+--------------+------+-----+---------+-------+
| PROJECT_ID | int(11) | NO | | NULL | |
| PROJECT_NAME | varchar(255)| NO | | NULL | |
| PROJECT_DESCRIPTION | varchar(255) | NO| | NULL | |
| PROJECT_TYPE | int(11) | NO | | NULL | |
| USER_ID | varchar(36) | NO | | NULL | |
| GROUP_ID | varchar(36) | NO | | NULL | |
| MANAGERGROUP_ID | varchar(36) | NO| | NULL | |
| TASK_ID | int(11) | NO | | NULL | |
| DATE_CREATED | bigint(20) | NO | | NULL | |
| PUBLISH_TAG | int(11) | NO | | NULL | |
| PROJECT_PUBLISHDATE| datetime | YES | | NULL | |
| PROJECT_PUBLISHED_BY | varchar(36) | NO | | NULL | |
| PROJECT_PUBLISHED_BY_NAME | varchar(255) | YES||NULL||
| USER_NAME | varchar(128) | YES | | NULL | |
| GROUP_NAME | varchar(128) | YES | | NULL | |
| MANAGERGROUP_NAME | varchar(128) | YES|| NULL | |
+---------------------------+--------------+------+-----+---------+-------+
16 rows in set (0.00 sec)
-- Execução de testes na Tabela nova para Simulação do ERRO:
mysql> INSERT INTO TABLE_EXEMPLO_BACKUP (PUBLISH_TAG,PROJECT_ID,PROJECT_NAME,PROJECT_PUBLISHDATE,PROJECT_PUBLISHED_BY,PROJECT_PUBLISHED_BY_NAME,USER_ID,USER_NAME,GROUP_ID,GROUP_NAME,MANAGERGROUP_ID,MANAGERGROUP_NAME,PROJECT_DESCRIPTION,DATE_CREATED,PROJECT_TYPE,TASK_ID) VALUES (2163,4,'Offline','2017-09-21 15:49:TT','123-abc-1234-abcd','Admin ','123-abc-1234-abcd','Admin ','123-abc-1234-abcd','Users','123-abc-1234-abcd','Projectmanagers','The Offline Project',11111111111111,0,4);
Query OK, 1 row affected, 1 warning (0.02 sec)
mysql> show warnings;
+-----------+-------+-------------------------------------------------------------------------------+
| Level | Code | Message |
+-----------+-------+-------------------------------------------------------------------------------+
| Warning | 1265 | Data truncated for column 'PROJECT_PUBLISHDATE' at row 1 |
+-----------+-------+-------------------------------------------------------------------------------+
1 row in set (0.00 sec)
#### SOLUÇÃO
Como podemos observar nos testes acima, o erro ocorre na coluna PROJECT_PUBLISHDATE, portanto, vamos alterar o tipo do campo da COLUNA para o datatype aceitável, conforme abaixo:
Alteração do Datatype da coluna PROJECT_PUBLISHDATE de DATETIME para BIGINT
ALTER TABLE NEW_CMS_BACKUP_PROJECTS MODIFY PROJECT_PUBLISHDATE BIGINT;
-- Validar Descrição da tabela de Backup após alteração:
mysql> desc TABLE_EXAMPLE_BACKUP;
+---------------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------------+--------------+------+-----+---------+-------+
| PROJECT_ID | int(11) | NO | | NULL | |
| PROJECT_NAME | varchar(255)| NO | | NULL | |
| PROJECT_DESCRIPTION | varchar(255) | NO| | NULL | |
| PROJECT_TYPE | int(11) | NO | | NULL | |
| USER_ID | varchar(36) | NO | | NULL | |
| GROUP_ID | varchar(36) | NO | | NULL | |
| MANAGERGROUP_ID | varchar(36) | NO| | NULL | |
| TASK_ID | int(11) | NO | | NULL | |
| DATE_CREATED | bigint(20) | NO | | NULL | |
| PUBLISH_TAG | int(11) | NO | | NULL | |
| PROJECT_PUBLISHDATE|bigint(20)| YES | | NULL | |
| PROJECT_PUBLISHED_BY | varchar(36) | NO | | NULL | |
| PROJECT_PUBLISHED_BY_NAME | varchar(255) | YES||NULL||
| USER_NAME | varchar(128) | YES | | NULL | |
| GROUP_NAME | varchar(128) | YES | | NULL | |
| MANAGERGROUP_NAME | varchar(128) | YES|| NULL | |
+---------------------------+--------------+------+-----+---------+-------+
16 rows in set (0.00 sec)
-- Executar o insert novamente na tabela após o ajuste:
mysql> INSERT INTO TABLE_EXEMPLO_BACKUP (PUBLISH_TAG,PROJECT_ID,PROJECT_NAME,PROJECT_PUBLISHDATE,PROJECT_PUBLISHED_BY,PROJECT_PUBLISHED_BY_NAME,USER_ID,USER_NAME,GROUP_ID,GROUP_NAME,MANAGERGROUP_ID,MANAGERGROUP_NAME,PROJECT_DESCRIPTION,DATE_CREATED,PROJECT_TYPE,TASK_ID) VALUES (2163,4,'Offline','2017-09-21 15:49:TT','123-abc-1234-abcd','Admin ','123-abc-1234-abcd','Admin ','123-abc-1234-abcd','Users','123-abc-1234-abcd','Projectmanagers','The Offline Project',11111111111111,0,4);
Query OK, 1 row affected (0.00 sec)
Pronto, insert realizado com sucesso.
Agora só realizar o mesmo ajuste na tabela definitiva.
Espero que tenha ajudado.
Qualquer dúvida, deixe seu comentário.
Abraço.
Nenhum comentário:
Postar um comentário