Altering a table column using change - mysql

Altering a table column using change is not working but using modify the same query statement works fine.
With change it fails:
alter table users change name varchar(100);
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 'varchar(100)' at line 1 0.000 sec
With Modify it works.
alter table users modify name varchar(100);

If you use CHANGE then you have to specify a new name for the column, so the following should work:
alter table users change name newname varchar(100);
Look at the alter specification for CHANGE: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

The syntax for CHANGE is different than MODIFY.
From the documentation:
CHANGE [COLUMN] old_col_name new_col_name column_definition
So, in your case, you should use:
alter table users change name name varchar(100);

Related

Request for changing table's name [duplicate]

Renaming a table is not working in MySQL
RENAME TABLE group TO member;
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 'group
RENAME TO member' at line 1
The query is working fine on other tables for me, but not with the table group.
group is a keyword (part of GROUP BY) in MySQL, you need to surround it with backticks to show MySQL that you want it interpreted as a table name:
RENAME TABLE `group` TO `member`;
added(see comments)- Those are not single quotes.
Please try
RENAME TABLE `oldTableName` TO `newTableName`
The MySQL syntax for RENAME TABLE statement is the following:
RENAME TABLE <old_table_name> TO <new_table_name>
In your query, you've used group which is one of the keywords in MySQL. Try to avoid MySQL keywords for names while creating tables, field names and so on.
ALTER TABLE old_table_name RENAME new_table_name;
or
RENAME TABLE old_table_name TO new_table_name;
Table name change
RENAME TABLE old_table_name TO new_table_name;
Rename a table in MySQL :
ALTER TABLE current_name RENAME new_name;
group - is a reserved word in MySQL, that's why you see such 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 'group
RENAME TO member' at line 1
You need to wrap table name into backticks:
RENAME TABLE `group` TO `member`;
ALTER TABLE `group` RENAME `member`
group is keyword so you must have to enclose into group
For Mysql 5.6.18 use the following command
ALTER TABLE `old_table` RENAME TO `new_table`
Also if there is an error saying ".... near RENAME TO ..." try removing the tick `
RENAME TABLE tb1 TO tb2;
tb1 - current table name.
tb2 - the name you want your table to be called.
According to mysql docs: "to rename TEMPORARY tables, RENAME TABLE does not work. Use ALTER TABLE instead."
So this is the most portable method:
ALTER TABLE `old_name` RENAME `new_name`;
Try any of these
RENAME TABLE `group` TO `member`;
or
ALTER TABLE `group` RENAME `member`;
Rename table
Syntax
The syntax to rename a table in MySQL is:
ALTER TABLE table_name
RENAME TO new_table_name;
Example
Let's look at an example that shows how to rename a table in MySQL using the ALTER TABLE statement. or example:
ALTER TABLE contacts
RENAME TO people;
Running The Alter Command
1.Click the SQL tab at the top.
2.In the text box enter the following command: ALTER TABLE exampletable RENAME TO new_table_name;
3.Click the go button.
source : https://my.bluehost.com/hosting/help/2158
You can use
RENAME TABLE `group` TO `member`;
Use back tick (`) instead of single quote (').
Without giving the database name the table is can't be renamed in my case, I followed the below command to rename the table.
RENAME TABLE current_db.tbl_name TO current_db.tbl_name;
Right Click on View > New Query
And Type:
EXEC sp_rename 'Table', 'NewName'
Then Click on Run button at the top left corner of the page.

Change type of a column in mysql

I want to change the DataType of a mySQL table from float to DECIMAL:
ALTER TABLE t_tapes ALTER COLUMN price DECIMAL(15,6);
but I got an error:
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 'DECIMAL(15,6)' at line 1
You Have to change only ALTER before COLUMN TO MODIFY
LIKE
ALTER TABLE t_tapes MODIFY COLUMN price DECIMAL(15,6);
need Modify instead of Alter
ALTER TABLE table_name
MODIFY COLUMN column_name datatype;
ALTER TABLE t_tapes
MODIFY COLUMN price DECIMAL(15,6);
Use the SQl Query for Change data type of Mysql Column
ALTER TABLE `db-name`.`table-name`
CHANGE COLUMN `column-name` `column-name` DECIMAL(15,6);

MySQL: change column name currently named with a key word

I have a table "stats" in MySQL and one of the columns is named "AS".
Now I want to change its name, and I try to run
ALTER TABLE stats CHANGE COLUMN AS NEW_NAME varchar(5);
The error is
ERROR 1064 (42000): 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 'AS NEW_NAME varchar(5)'
I tried putting '' or "" around columns names but it didn't work. How can I fix it?
Use backticks:
ALTER TABLE stats CHANGE `COLUMN` AS `NEW_NAME` varchar(5);
You need to use backticks, Using backticks permits you to use alternative characters.
Use below query:
ALTER TABLE stats CHANGE `COLUMN` AS `NEW_NAME` varchar(5);
Backticks are to be used for table and column identifiers, but are only necessary when the identifier is a MySQL reserved keyword, or when the identifier contains whitespace characters or characters beyond a limited set (see below) It is often recommended to avoid using reserved keywords as column or table identifiers when possible, avoiding the quoting issue.
Hope it will help you..
Try the following query:
ALTER TABLE stats CHANGE COLUMN `AS` `NEW_NAME` varchar(5);

Error SQL ALTER TABLE #1064

I have an error in my SQL syntax, can anyone help me please beacause I really don't see the error...
Here is the request SQL :
ALTER TABLE t_personne Change email_personne to mail_pers ;
MySQL 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 'to mail_pers' at line 1
please help
SQL ALTER TABLE Syntax
To add a column in a table, use the following syntax:
ALTER TABLE table_name
ADD column_name datatype
To delete a column in a table, use the following syntax (notice that some database systems don't allow deleting a column):
ALTER TABLE table_name
DROP COLUMN column_name
To change the data type of a column in a table, use the following syntax:
SQL Server / MS Access:
ALTER TABLE table_name
ALTER COLUMN column_name datatype
If you are trying to rename the column, Then
Query
ALTER TABLE t_personne
CHANGE COLUMN email_personne mail_pers VARCHAR(255) NOT NULL;
Documentation

Rename a table in MySQL

Renaming a table is not working in MySQL
RENAME TABLE group TO member;
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 'group
RENAME TO member' at line 1
The query is working fine on other tables for me, but not with the table group.
group is a keyword (part of GROUP BY) in MySQL, you need to surround it with backticks to show MySQL that you want it interpreted as a table name:
RENAME TABLE `group` TO `member`;
added(see comments)- Those are not single quotes.
Please try
RENAME TABLE `oldTableName` TO `newTableName`
The MySQL syntax for RENAME TABLE statement is the following:
RENAME TABLE <old_table_name> TO <new_table_name>
In your query, you've used group which is one of the keywords in MySQL. Try to avoid MySQL keywords for names while creating tables, field names and so on.
ALTER TABLE old_table_name RENAME new_table_name;
or
RENAME TABLE old_table_name TO new_table_name;
Table name change
RENAME TABLE old_table_name TO new_table_name;
Rename a table in MySQL :
ALTER TABLE current_name RENAME new_name;
group - is a reserved word in MySQL, that's why you see such 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 'group
RENAME TO member' at line 1
You need to wrap table name into backticks:
RENAME TABLE `group` TO `member`;
ALTER TABLE `group` RENAME `member`
group is keyword so you must have to enclose into group
For Mysql 5.6.18 use the following command
ALTER TABLE `old_table` RENAME TO `new_table`
Also if there is an error saying ".... near RENAME TO ..." try removing the tick `
RENAME TABLE tb1 TO tb2;
tb1 - current table name.
tb2 - the name you want your table to be called.
According to mysql docs: "to rename TEMPORARY tables, RENAME TABLE does not work. Use ALTER TABLE instead."
So this is the most portable method:
ALTER TABLE `old_name` RENAME `new_name`;
Try any of these
RENAME TABLE `group` TO `member`;
or
ALTER TABLE `group` RENAME `member`;
Rename table
Syntax
The syntax to rename a table in MySQL is:
ALTER TABLE table_name
RENAME TO new_table_name;
Example
Let's look at an example that shows how to rename a table in MySQL using the ALTER TABLE statement. or example:
ALTER TABLE contacts
RENAME TO people;
Running The Alter Command
1.Click the SQL tab at the top.
2.In the text box enter the following command: ALTER TABLE exampletable RENAME TO new_table_name;
3.Click the go button.
source : https://my.bluehost.com/hosting/help/2158
You can use
RENAME TABLE `group` TO `member`;
Use back tick (`) instead of single quote (').
Without giving the database name the table is can't be renamed in my case, I followed the below command to rename the table.
RENAME TABLE current_db.tbl_name TO current_db.tbl_name;
Right Click on View > New Query
And Type:
EXEC sp_rename 'Table', 'NewName'
Then Click on Run button at the top left corner of the page.