Trying to apply "Not null" and "default" in MYSQL - mysql

I am trying to create a column in a table in MySQL that cannot be a null value, and also has a default value. But when trying to, it just shows an error in syntax:
Create table example (
code int(10),
name varchar(20) not null default('My company')
);
And this is my error message:
ERROR 1064 (42000): 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 '('My company')
)' at line 3

Problem seems to be the default part.
I have removed the parentheses and it works for me. Verified in sql fiddle here:
http://sqlfiddle.com/#!9/5e571a

Related

Add calculated column to mySQL table

I'm trying to add column 'new_id' to table 'items_backup' with the following MySQL expression:
ALTER TABLE `items_backup`
ADD COLUMN `new_id` DOUBLE
GENERATED ALWAYS AS (`id`*100) STORED;
It is the multiplication of column 'id' by 100.
This is returning the error:
MySQL said: Documentation
#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 'GENERATED ALWAYS AS (`id`*100) STORED' at line 3
MySQL Version: 5.6.51
Can anyone help?

setting a constraint

ALTER TABLE Customers
ADD COLUMN ZipCode INT CONSTRAINT CHK_ZipCode
CHECK ( [ZipCode] LIKE '[0-9][0-9][0-9][0-9][0-9]')
Error Code: 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 '[ZipCode] LIKE '[0-9][0-9][0-9][0-9][0-9]')' at
line 3
it said '[' not valid , expecting an expression
how do i solve this?
In MySQL, you would express this as:
ALTER TABLE Customers
ADD COLUMN ZipCode INT CONSTRAINT CHK_ZipCode CHECK (ZipCode REGEXP '^[0-9](5}$');
The syntax you are using looks like SQL Server.

How to solve #1064 error in MySQL?

I got MySQL syntax Error 1064 while I am add new column.
ALTER TABLE `customerdetails` ADD `mobile` DOUBLE(12) NOT NULL ;
where customerdetails is the name of the table.
The Error message is " #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 ') NOT NULL' at line 1
Can somebody help me to solve this problem?
When you are defining column type as DOUBLE you have to define how many decimal places it will use
ALTER TABLE customerdetails ADD mobile DOUBLE(12,2) NOT NULL ;
Also first number (Characteristic) needs to be bigger than second number (Mantissa)

I am not able to create a table in MySQL from Ubuntu os

mysql> create table prasad1(empid number(1),name varchar(4));
ERROR 1064 (42000): 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 'number(1),name varchar(4))' at line 1
This is the correct query create table prasad1(empid int(1),name varchar(4));
Explanation: There is not number field type in MySQL. You can use either int or integer.

Mysql INSERT syntax error #1064

I keep getting the following 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 '' at line 1
when I try to run this query in phpMyAdmin:
INSERT INTO access_log (
idStaff, validSession, attempts, remoteHost, remoteAddress, remoteTime, banned,
errorNumber,errorMessage,userName )
VALUES ( '1','1','1','voidDNS','188.25.3.105','1388877754','','','','pinochio';
My table has these columns and their type in this order is (except an auto-increment column 'entry"):
INT, TINYINT, INT, TEXT, VARCHAR(20), BIGINT( I was afraid of using TIMESTAMP), TINYINT, INT, TEXT, VARCHAR(24).
The query is generated by php automatically, this is why every value has quotes, which I understand shouldn't generate an error.
Can anyone see what's wrong here?
Lack simply closing parentheses at the end of query