how to solve creating table issue in mysql? [closed] - mysql

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 2 years ago.
Improve this question
create table dept(
Deptno integer NOT NULL PRIMARY KEY Departmentnumber,
Dname varchar(20) NOT NULL Nameofdepartment,
Loc varchar(10) NOT NULL Locationofdepartment
);
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 'Departmentnumber,Dname varchar(20) NOT NULL
Nameofdepartment,Loc varchar(10) NOT' at line 1

The issue is that you try to provide aliases to your column names, but you shouldn't, at least, not at the creation of the table:
create table dept(
Deptno integer NOT NULL PRIMARY KEY,
Dname varchar(20) NOT NULL,
Loc varchar(10) NOT NULL
);
You can use those aliases in select commands, but not in create table commands.
See more about the syntax of create table in the documentation.

You cant create an alias for columns when creating a table. Only when select-ing from it.
Remove the aliases and the query should work:
create table dept(Deptno integer NOT NULL PRIMARY KEY ,Dname varchar(20) NOT NULL ,Loc varchar(10) NOT NULL );

Related

When I try to access or create tables I get an error [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 2 years ago.
Improve this question
CREATE TABLE demos
(id INT UNSIGNED AUTO_INCREMENT PRIMARY_KEY
first_name VARCHAR NOT NULL
last_name VARCHAR NOT NULL
hometown VARCHAR NOT NULL)
You have an error in your SQL syntax; check the manual that corresponds to
your MariaDB server version for the right syntax to use near 'first_name
VARCHAR NOT NULL last_name VARCHAR NOT NULL hometown VARCHAR NOT...' at line 3
You need to
separate the field definitions with commas;
PRIMARY KEY should be two words separated by a space, not joined with an underscore;
VARCHAR fields need to have a length specified
The following works fine with both MySQL (which you said you're using) and MariaDB (which the error message says you're using):
CREATE TABLE demos
(id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(10) NOT NULL,
last_name VARCHAR(10) NOT NULL,
hometown VARCHAR(10) NOT NULL)
db<>fiddle here
You need to add commas after each field in your table, like so:
CREATE TABLE demos (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(10) NOT NULL,
last_name VARCHAR(10) NOT NULL,
hometown VARCHAR(10) NOT NULL
);
EDIT: As the other answer suggests, you also need to specify the default VARCHAR size and separate the keywords PRIMARY and KEY

MySQL to Oracle database query [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I have created a MySQL database in which I have successfully executed the following query:
CREATE TABLE `Person`
(
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL DEFAULT '',
`country` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
which created a table.
Now I want to create identical table in an Oracle c11 database. Server and database are ready to take queries, however when I use the same query from MySQL I get syntax errors. How should this query look in Oracle database? I use Oracle SQL Developer.
Error starting at line : 1 in command - Error report - SQL Error: ORA-00907: brak prawego nawiasu 00907. 00000 - "missing right parenthesis"
This is what the query should look like
CREATE TABLE Person (
id number NOT NULL PRIMARY KEY ,
name varchar(20) DEFAULT '' NOT NULL,
country varchar(20) DEFAULT NULL
);
You need to create sequence and trigger for auto-increment or increase this manually in your code by calling sequence.nextval

What is wrong with this Create Table statement [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 6 years ago.
Improve this question
please could you help me with this piece of code, I don't know what's wrong with it. It seems correct at simple glance but it just gets me #1064 syntax error. The MySQL version am running is 5.5
CREATE TABLE mytablename(
-> id SMALLINT NOT NULL AUTO_INCREMENT,
-> name VARCHAR(100) NOT NULL,
-> submission_date NOT NULL TIMESTAMP,
-> PRIMARY KEY (id)
-> )ENGINE=InnoDB;
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 '-> id SMALLINT NOT NULL AUTO_INCREMENT, -> name CHAR(100), ->
submission' at line 2
Remove those arrows and try escaping the column names with backticks:
CREATE TABLE mytablename(
`id` SMALLINT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`submission_date` NOT NULL TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE = InnoDB;

Error while creating table? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
mysql> CREATE TABLE DEPARTMENT
-> (
-> "ID" NUMBER,
-> "NAME" VARCHAR2(30),
-> PRIMARY KEY ("ID")
-> )engine-INNODB;
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 '"ID" NUMBER, "NAME" VARCHAR2(30), PRIMARY KEY
("ID") )engine-INNODB' at line 3
Can someone tell me what is that I am doing wrong here!!!!
The column names should not be in double quotes, and the database engine should use an "=" sign rather than a hyphen.
try this
CREATE TABLE `DEPARTMENT` (
`ID` int(6) NOT NULL auto_increment,
`NAME` varchar(30) NOT NULL default '',
PRIMARY KEY (`id`)
)
ENGINE=MyISAM AUTO_INCREMENT=1;

Mysql equivalent of MS-Sql server IDENTITY field [duplicate]

This question already has answers here:
Equivalent of MSSQL IDENTITY Column in MySQL
(2 answers)
Closed 9 years ago.
I have a sql-server query and i want to run it (or create an equivalent query) on mysql. But currently i'm getting syntax error. Can anyone help me to create a mysql equivalent of the below mentioned sql-server query?
create table Emp(EmpName varchar(20) not null,keyword varchar(20) not null,
DOB datetime not null,Comments text(65535),EmpId int primary key IDENTITY(1,1));
Following is the error
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 'IDENTITY(1,1))' at line 1
CREATE TABLE Emp (
EmpId INT AUTO_INCREMENT,
EmpName VARCHAR(20) NOT NULL,
KEYWORD VARCHAR(20) NOT NULL,
DOB DATETIME NOT NULL,
Comments TEXT(65535), PRIMARY KEY (EmpId)
);
You can use auto_increment .By default it will increase by 1.If you want any other increment you can specify your own.
It should be defined as auto_incremented primary key instead. For example:
CREATE TABLE Emp (
EmpId INT AUTO_INCREMENT,
EmpName VARCHAR(20) NOT NULL,
KEYWORD VARCHAR(20) NOT NULL,
DOB DATETIME NOT NULL,
Comments TEXT(65535),
PRIMARY KEY (EmpId)
);
You can use an auto-increment field