How does this data truncation possible? - mysql

I am trying to insert some datetime values and I came up with a non sense data truncation problem, and I have no idea how to solve and what is causing it. Hope someone helps!
I have the following table:
CREATE TABLE tb_cliente (
id bigint unsigned NOT NULL AUTO_INCREMENT,
st_servidor tinyint(1) NOT NULL,
nm_nome varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
nm_nome_social varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
cd_matricula varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
cd_siape varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
dt_nascimento timestamp NOT NULL,
sexo varchar(1) COLLATE utf8mb4_unicode_ci NOT NULL,
nacionalidade varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
ano_chegada_no_pais varchar(255)
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
naturalidade varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
uf_nascimento varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
estado_civil varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
sn_conjuge_servidor tinyint(1) DEFAULT NULL,
nm_conjuge varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
nm_pai varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
nm_mae varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
raca varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
cor_dos_olhos varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
cor_dos_cabelos varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
sn_alergico tinyint(1) DEFAULT NULL,
grau_de_instrucao varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
dt_conclusao timestamp NULL DEFAULT NULL,
altura decimal(8,2) DEFAULT NULL,
tipo_sanguineo varchar(255) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
sn_doador_de_orgaos tinyint(1) DEFAULT NULL,
nome_anterior varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
endereco varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
nr_cep varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
nr_cpf varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
telefone varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
telefone_celular varchar(255)
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
email_institucional varchar(255)
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
email_externo varchar(255)
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
email_comunicados varchar(255)
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
endereco_correspondencia varchar(255)
COLLATE utf8mb4_unicode_ci DEFAULT NULL,
nr_cep_correspondencia varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
created_at timestamp NULL DEFAULT NULL,
updated_at timestamp NULL DEFAULT NULL,
user_id bigint unsigned DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY tb_servidor_nr_cpf_unique (nr_cpf),
KEY tb_servidor_user_id_index (user_id),
CONSTRAINT tb_servidor_user_id_foreign FOREIGN KEY (user_id)
REFERENCES tb_users (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
When I try to insert timestamp using year 1948, I get this error:
SQL Error [1292] [22001]: Data truncation: Incorrect datetime value: '1948-07-19 00:00:00' for column 'dt_nascimento' at row 1
But when I try to insert timestamp using year 1999, it inserts successfully using the following query:
insert into tb_cliente (
updated_at, created_at, st_servidor,
nm_nome, cd_matricula, dt_nascimento,
sexo, nacionalidade, uf_nascimento,
estado_civil, grau_de_instrucao, nr_cpf,
telefone, telefone_celular, email_institucional, email_externo)
values ('2022-10-25 00:00:00', '2022-10-25 00:00:00', '1',
'User name 1', '000000', '1999-07-19 00:00:00','M',
'1', 'AC', 'CASADO','ENSINO' , '000000', '000000', '000000',
'USER#UOL.COM.BR', 'USER#UOL.COM.BR' )
Mysql Server 8.0

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-type-syntax.html says:
A timestamp. The range is '1970-01-01 00:00:01.000000' UTC to '2038-01-19 03:14:07.999999' UTC.
In other words, '1948-07-19 00:00:00' is more than 21 years earlier than the earliest date a TIMESTAMP can store.
You should use DATETIME if you want dates outside this range.

Related

What is the ACTION keyword in MySQL

What is the Action keyword in MySQL? I'm converting a MySQL query into cockroachdb query and the MySQL query I'm seeing is:
CREATE TABLE tabDocType Action (
name varchar(140) COLLATE utf8mb4_unicode_ci NOT NULL,
creation TIMESTAMP(6) DEFAULT NULL,
modified TIMESTAMP(6) DEFAULT NULL,
modified_by varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
owner varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
docstatus INT NOT NULL DEFAULT 0,
parent varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
parentfield varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
parenttype varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
idx INT NOT NULL DEFAULT 0,
label varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
group varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
action_type varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
action text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (name)
);
Also is Link also a keyword? It's not in the docs but I'm not quite sure what it's actually doing here:
CREATE TABLE `tabDocType Link` (
`name` varchar(140) COLLATE utf8mb4_unicode_ci NOT NULL,
`creation` TIMESTAMP(6) DEFAULT NULL,
`modified` TIMESTAMP(6) DEFAULT NULL,
`modified_by` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`owner` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`docstatus` INT NOT NULL DEFAULT 0,
`parent` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`parentfield` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`parenttype` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`idx` INT NOT NULL DEFAULT 0,
`group` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`link_doctype` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`link_fieldname` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`name`),
KEY `parent` (`parent`),
KEY `modified` (`modified`)
)
From the docs, https://dev.mysql.com/doc/refman/8.0/en/keywords.html, ACTION seems to be a keyword but it doesn't have details on it.
Perhaps they are not keywords at all but serves a different purpose? Thank you.
So looks like it's not a keyword, it's part of the table name. Spaces are allowed in a table name as long as the name is in the back tick.
https://www.tutorialspoint.com/can-we-create-a-table-with-a-space-in-name-in-mysql
It has nothing to do with reserved words, create table has no ACTION attribute
As you can read up on the home page about create table
Still group in your create table is a reserved word
CREATE TABLE tabDocType (
name varchar(140) COLLATE utf8mb4_unicode_ci NOT NULL,
creation TIMESTAMP(6) DEFAULT NULL,
modified TIMESTAMP(6) DEFAULT NULL,
modified_by varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
owner varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
docstatus INT NOT NULL DEFAULT 0,
parent varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
parentfield varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
parenttype varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
idx INT NOT NULL DEFAULT 0,
`label` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`group` varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
action_type varchar(140) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
action text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (name)
);
To answer your literal question, ACTION is a reserved word because one of the possible ON DELETE/ON UPDATE reference option values for a foreign key constraint is NO ACTION; see https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html

MySQL 1366 incorrect integer value

I am trying to import a csv file into a MySQL DB.
Said csv file is from a select * from the same table
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/import.csv'
INTO TABLE fisc_hist_header
character set utf8
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(-- a whole lot of fields ...)
SET `CREATED_DATE`=STR_TO_DATE( #yourdatecolumn, '%d/%m/%Y %H:%i:%s' )
The file starts with
545752715002093599;3;1;503955117000124560;28/11/2019 14:38:51;0 -- all the other fields
What I get is
After searching here, all results are for
Incorrect integer value: ''
What is different and strange to me is that for me, it gets the value but does not inputs it as an integer ?
EDIT : As asked here is the create table statement:
CREATE TABLE `fisc_hist_header` (
`fiscal_idx` bigint(20) NOT NULL AUTO_INCREMENT,
`invc_sid` bigint(20) NOT NULL,
`sbs_no` int(11) NOT NULL,
`store_no` int(5) NOT NULL,
`workstation_id` bigint(20) NOT NULL,
`created_date` datetime NOT NULL,
`invc_type` int(11) NOT NULL,
`cashier_name` varchar(8) COLLATE utf8_bin DEFAULT NULL,
`associate_name` varchar(8) COLLATE utf8_bin DEFAULT NULL,
`store_code` varchar(5) COLLATE utf8_bin DEFAULT NULL,
`store_name` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`store_address1` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`store_address2` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`store_address3` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`store_address4` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`store_address5` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`store_address6` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`store_zip` varchar(10) COLLATE utf8_bin DEFAULT NULL,
`customer_sid` bigint(20) DEFAULT NULL,
`customer_title` varchar(15) COLLATE utf8_bin DEFAULT NULL,
`customer_last_name` varchar(30) COLLATE utf8_bin DEFAULT NULL,
`customer_first_name` varchar(30) COLLATE utf8_bin DEFAULT NULL,
`customer_address1` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`customer_address2` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`customer_address3` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`customer_address4` varchar(40) COLLATE utf8_bin DEFAULT NULL,
`customer_zip_code` varchar(10) COLLATE utf8_bin DEFAULT NULL,
`customer_country` varchar(35) COLLATE utf8_bin DEFAULT NULL,
`customer_phone` varchar(30) COLLATE utf8_bin DEFAULT NULL,
`customer_email` varchar(60) COLLATE utf8_bin DEFAULT NULL,
`item_count` int(5) NOT NULL,
`grand_total_receipt` decimal(10,0) NOT NULL,
`prism_version` varchar(19) COLLATE utf8_bin DEFAULT NULL,
`plugin_version` varchar(19) COLLATE utf8_bin DEFAULT NULL,
`flag_first_record` char(1) COLLATE utf8_bin DEFAULT NULL,
`signature_key` varchar(500) COLLATE utf8_bin DEFAULT NULL,
`signature` varchar(500) COLLATE utf8_bin DEFAULT NULL,
`signature_previous` varchar(500) COLLATE utf8_bin DEFAULT NULL,
`signature_short` varchar(10) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`fiscal_idx`),
UNIQUE KEY `un_fhh` (`invc_sid`)
) ENGINE=InnoDB AUTO_INCREMENT=364 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
As per the documentation for integer values, the maximum value for an unsigned integer which can be held in an INT column is 4294967295. For a standard signed integer it's 2147483647.
Your number 545752715002093599 is larger than both of these. You'll need to declare the target column as BIGINT in your fisc_hist_header table - the max value for a signed integer in this column type is 9223372036854775807.
These restrictions exist because of the number of bytes used by MySQL to store each value in the database. If you know you won't need to store values above a certain limit, you can use a smaller integer type in order to save disk space and memory.

How to change collation for view table in mysql

When I run this query:
select b.email,
concat('[AAA]: Xin chao QK ', a.client_name, ' HD ',a.account_no, ' vua khoi tao') as subject,
replace( (select email_content from xxff_message where refid=1 and status='O'),'#LOAN_ID#', a.account_no) as message, -- cp init
a.loan_id
from interface.vw_loan_full a
left join interface.xxff_client b
on a.client_id=b.client_id
where 1=1
and a.status=100
and (a.loan_id, email) not in ( select loan_id, receiver from xxff_loan_message_sent where stage='INIT100_MSG_EMAIL')
and date(a.value_date) between DATE_ADD(CURDATE(), INTERVAL -30 day) and date(now());
And I get this error:
Err] 1270 - Illegal mix of collations (utf8_unicode_ci,IMPLICIT),
(utf8_unicode_ci,COERCIBLE), (utf8_general_ci,IMPLICIT) for operation
'replace'
When I research, this cause is different utf8_unicode_ci and utf8_general_ci. But I checked all table, database are using utf8_unicode_ci .
But view table vw_loan_full is utf8_general_ci. Please help me change collation of view table.
Because I run command:
ALTER TABLE vw_loan_full CONVERT TO CHARACTER SET utf8 COLLATE
utf8_unicode_ci;
And get Error:
[Err] 1347 - 'interface.vw_loan_full' is not BASE TABLE
My result from SHOW CREATE TABLE xxff_client:
CREATE TABLE xxff_client ( client_id bigint(20) NOT NULL,
client_name varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
national_id varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
issue_date date DEFAULT NULL, issue_place varchar(120) COLLATE
utf8_unicode_ci DEFAULT NULL, Gender varchar(15) COLLATE
utf8_unicode_ci DEFAULT NULL, dob date DEFAULT NULL, phone
varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, email
varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, address
varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL, status
varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL, creation_date
date DEFAULT NULL, USER_ID varchar(20) COLLATE utf8_unicode_ci
DEFAULT NULL, company_name varchar(150) COLLATE utf8_unicode_ci
DEFAULT NULL, company_address varchar(255) COLLATE utf8_unicode_ci
DEFAULT NULL, title varchar(50) COLLATE utf8_unicode_ci DEFAULT
NULL, dept_name varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
join_date date DEFAULT NULL, salary_date int(11) DEFAULT NULL,
remain_of_laborcontract int(11) DEFAULT NULL, salary_recently
varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL, eco_userid
bigint(20) DEFAULT NULL, otp_count tinyint(20) DEFAULT '0',
PRIMARY KEY (client_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC
My result from SHOW CREATE TABLE xxff_loan_message_sent:
CREATE TABLE xxff_loan_message_sent ( refid bigint(20) NOT NULL
AUTO_INCREMENT, loan_id int(11) NOT NULL, stage varchar(20)
COLLATE utf8_unicode_ci DEFAULT NULL, sent_status varchar(6)
COLLATE utf8_unicode_ci DEFAULT NULL, created_by varchar(15)
COLLATE utf8_unicode_ci DEFAULT NULL, created_date date DEFAULT
NULL, receiver varchar(150) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (refid) ) ENGINE=InnoDB AUTO_INCREMENT=280 DEFAULT
CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC
My result from SHOW CREATE TABLE vw_loan_full:
CREATE ALGORITHM=UNDEFINED DEFINER=root#% SQL SECURITY DEFINER
VIEW vw_loan_full AS select a.id AS loan_id,a.client_id AS
client_id,b.display_name AS client_name,b.account_no AS
cif_no,a.product_id AS product_id,c.short_name AS
product_name,a.currency_code AS
ccy_code,a.annual_nominal_interest_rate AS
rate,a.term_frequency AS term,a.approved_principal AS
approved_principal,a.principal_amount AS
disbursed_amount,a.principal_outstanding_derived AS
pos,a.loan_status_id AS status,a.submittedon_date AS
created_date,a.submittedon_userid AS
created_by,a.expected_disbursedon_date AS
value_date,a.maturedon_date AS
maturity_date,a.approvedon_date AS
approvedon_date,a.disbursedon_date AS
disbursedon_date,a.expected_maturedon_date AS
expected_maturedon_date,a.loanpurpose_cv_id AS
loan_purpose,a.account_no AS account_no from
((mifostenant-default.m_loan a left join
mifostenant-default.m_client b on((a.client_id = b.id)))
left join mifostenant-default.m_product_loan c
on((a.product_id = c.id)))
My result from SHOW CREATE TABLE vw_loan_full:
CREATE TABLE xxff_message ( refid bigint(20) NOT NULL
AUTO_INCREMENT, msg_type varchar(8) COLLATE utf8_unicode_ci
DEFAULT NULL, sms_content varchar(500) COLLATE utf8_unicode_ci
DEFAULT NULL, email_content varchar(2000) COLLATE utf8_unicode_ci
DEFAULT NULL, email_subject varchar(250) COLLATE utf8_unicode_ci
DEFAULT NULL, status varchar(4) COLLATE utf8_unicode_ci DEFAULT
NULL, created_by varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,
created_date datetime DEFAULT NULL, updated_by varchar(15)
COLLATE utf8_unicode_ci DEFAULT NULL, updated_date datetime
DEFAULT NULL, stage_code varchar(35) COLLATE utf8_unicode_ci
DEFAULT NULL, email_receiver varchar(120) COLLATE utf8_unicode_ci
DEFAULT NULL, PRIMARY KEY (refid) ) ENGINE=InnoDB
AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
ROW_FORMAT=DYNAMIC
How I can change collation for view table in MySQL? Thanks for your helpfull !!!
MySQL 5.5 in Windows

How to import a table that was deleted with foreign keys?

I have deleted a table from my server called 'companies' that has foreign keys and also has relationships with other tables. Now I'm trying to import the table again with a backup I download, but it throws an error of incorrectly formed foreign keys
I have tried to create just the table with 2 charts a name and an id, but it's not working it also throws the error of Foreign key constraint is incorrectly formed.
CREATE TABLE `companies` (
`id` int(10) UNSIGNED NOT NULL,
`company_name` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`company_email` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`company_phone` varchar(191) COLLATE utf8_unicode_ci NOT NULL,
`logo` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`login_background` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`address` text COLLATE utf8_unicode_ci NOT NULL,
`website` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`currency_id` int(10) UNSIGNED DEFAULT NULL,
`package_id` int(10) UNSIGNED DEFAULT NULL,
`package_type` enum('monthly','annual') COLLATE utf8_unicode_ci NOT NULL
DEFAULT 'monthly',
`timezone` varchar(191) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'Asia/Kolkata',
`date_format` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'd-m-Y',
`time_format` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'h:i a',
`locale` varchar(191) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'en',
`latitude` decimal(10,8) NOT NULL DEFAULT 26.91243360,
`longitude` decimal(11,8) NOT NULL DEFAULT 75.78727090,
`leaves_start_from` enum('joining_date','year_start') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'joining_date',
`active_theme` enum('default','custom') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'default',
`status` enum('active','inactive','license_expired') COLLATE utf8_unicode_ci NOT NULL DEFAULT 'active',
`last_updated_by` int(10) UNSIGNED DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`stripe_id` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`card_brand` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`card_last_four` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
`trial_ends_at` timestamp NULL DEFAULT NULL,
`licence_expire_on` date DEFAULT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Error Message:
(Error: 150 "Foreign key constraint is incorrectly formed")
First is to get all foreign keys of "Comapanies" table using this query.
Then drop all foreign keys
ALTER TABLE `companies`
DROP FOREIGN KEY `id_name_fk`;
Then execute your create table statement

What is wrong in this MySQL syntax?

What is wrong here?
I exported this table from my local pma and trying to upload it on remote sever.
CREATE TABLE IF NOT EXISTS `posts` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`banna` text COLLATE utf8_croatian_ci,
`bannb` text COLLATE utf8_croatian_ci,
`img` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`images` text COLLATE utf8_croatian_ci,
`title` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`subtitle` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`story` mediumtext COLLATE utf8_croatian_ci,
`status` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`tags` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`auth` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`moder` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`linked` json DEFAULT NULL,
`inde` int(11) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=382 DEFAULT CHARSET=utf8 COLLATE=utf8_croatian_ci
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 'json DEFAULT NULL,
`inde` int(11) DEFAULT NULL,
`count` int(11) DEFAULT NULL' at line 15
I have run your query on mysql version 5.7.21, it works fine, No error thrown, so it seems to me mysql version related issue raised in your site, here is the execution result
CREATE TABLE IF NOT EXISTS `posts` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`banna` text COLLATE utf8_croatian_ci,
`bannb` text COLLATE utf8_croatian_ci,
`img` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`images` text COLLATE utf8_croatian_ci,
`title` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`subtitle` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`story` mediumtext COLLATE utf8_croatian_ci,
`status` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`tags` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`auth` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`moder` varchar(255) COLLATE utf8_croatian_ci DEFAULT NULL,
`linked` json DEFAULT NULL,
`inde` int(11) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
)
ENGINE = InnoDB
AUTO_INCREMENT = 382
DEFAULT CHARSET = utf8
COLLATE = utf8_croatian_ci
0 row(s) affected 1.535 sec