MySQL - Unable to create column - sql

I am using MySQL 5.1. When i am trying to add new column, it throws error like this,
Database name is "ebill".
Error Code : 1025
Error on rename of '.\ebill\#sql-98_477' to '.\ebill\user' (errno: 150)
(0 ms taken)
This is my sql query:
alter table `ebill`.`user` add column `User_Password` varchar(25) NULL
Where is the issue?

Look here for an answer: What does mysql error 1025 (HY000): Error on rename of './foo' (errorno: 150) mean?.

Related

Pg admin 4 - error creating any new table

whenever I am trying to create a new table on PgAdmin 4 tool for postgresql I am getting an error
Query: CREATE TABLE geeks_table
ERROR: syntax error at end of input
LINE 1: CREATE TABLE geeks_table
^
SQL state: 42601
Character: 25
As per the comments, you need to add the data definition language (DDL) to the create statement.
The database needs to know what columns and data types are required, for example, the following DDL will create a 2 column table:
CREATE TABLE geeks_table (
code INTEGER PRIMARY KEY,
title varchar(40) NOT NULL
);
If you're aiming for a table without columns, this is the syntax
CREATE TABLE geeks_table ();

Why is this simple SQL code not working in Azure Databricks?

I'm trying to alter a table in Azure Databricks using the following SQL code.I would like to add a column to the existing table 'logdata' and being unsuccessful.
ALTER TABLE logdata
ADD sli VARCHAR(255)
Error message:
Error in SQL statement: ParseException: no viable alternative at input 'ALTER LOGDATA'(line 1, pos 6)
I tried searching online, but couldn't find what's causing this. Could anyone please help this beginner please?
For Azure syntax be like : ALTER TABLE table_name ADD COLUMNS (col_name data_type)
So your query must be like :
ALTER TABLE logdata
ADD COLUMNS (sli VARCHAR(255))

Changing datatype of a column in database

I have to change the datatype of a column from CHAR to INTEGER in database. I used the following query:
ALTER TABLE cert_request
ALTER column CERT_REQUEST_NBR SET TYPE(INTEGER);
however it's showing error in the keyword "column" and giving the error code as -104 on execution. Following is the error log;
Error: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=ALTER TABLE CERT_REQUEST ALTER CERT_R;BEGIN-OF-STATEMENT;<create_proc>, DRIVER=3.50.152
SQLState: 42601
ErrorCode: -104
I also tried the using the Modify keyword, but it isn't identified in my database.
I also tried the following query but again of no use.
alter table CERT_REQUEST alter column cert_request_nbr integer
It gives the following error
Error: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=integer;umn cert_request_nbr;<alter_col_action1>, DRIVER=3.50.152
SQLState: 42601
ErrorCode: -104
Please provide me some suggestions.
Use MySQL Type Conversion or ALTER
ALTER TABLE cert_request MODIFY CERT_REQUEST_NBR INTEGER;
Or try MySQL Type Conversion
CAST(CERT_REQUEST_NBR AS UNSIGNED)
You have to use MODIFY not ALTER in MYSQL
ALTER TABLE cert_request
MODIFY CERT_REQUEST_NBR INTEGER;
And in DB2 you can try like this:
ALTER TABLE cert_request ADD COLUMN Temporary INTEGER;
UPDATE cert_request SET Temporary=CAST(CERT_REQUEST_NBR AS INTEGER);
ALTER TABLE cert_request DROP COLUMN CERT_REQUEST_NBR;
ALTER TABLE cert_request CHANGE Temporary CERT_REQUEST_NBR INTEGER;
Have you tried:
ALTER TABLE `cert_request` CHANGE `CERT_REQUEST_NBR` `CERT_REQUEST_NBR` INT(10) NOT NULL;
Be careful any data that is not a integer will be lost.
It will be helpful if you specify which database you are using . In oracle the solution should be
Alter table cert_request modify CERT_REQUEST_NBR number(30)
In db2(based on the error you provided, I believe your database is db2) the solution is
Alter table cert_request alter column CERT_REQUEST_NBR set datatype decimal(30)
You are missing the word 'Data' between 'Set' and 'Type'.
It should be like this:
ALTER TABLE cert_request
ALTER column CERT_REQUEST_NBR SET DATA TYPE(INTEGER);
May be, It happen due to varchar data present in field values.
Delete that data, and then run your query
It is because your column is having data which are not integer. You will either need to remove those data and try or you can run a query mentioned in above post which will make your data null which are not int.

Failing update table in db2 with SQLCODE: -668, SQLSTATE: 57016, SQLERRMC: 7;

I am using db2 9.5 i have created a column in table which is created successfully but i am not able to update table column and getting following error
[Error] Script lines: 1-1 --------------------------
DB2 SQL error: SQLCODE: -668, SQLSTATE: 57016, SQLERRMC: 7;DB2ADMIN.XCATENTRYEXT
Message: Operation not allowed for reason code "7" on table "DB2ADMIN.XCATENTRYEXT".
Following the some blog/sites on google i found the REORG command as solution as mentioned in following link
http://bytes.com/topic/db2/answers/508869-reorg-tablespace
i have tried the following queries to run on database to solve the problem.
Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE')")
REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE
REORG TABLE DB2ADMIN.XCATENTRYEXT
REORG INDEXES I0000908 FOR TABLE DB2ADMIN.XCATENTRYEXT
but all queries have the same error in result like
DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601, SQLERRMC: Database;BEGIN-OF-STATEMENT;<variable_set>
Message: An unexpected token "Database" was found following "BEGIN-OF-STATEMENT". Expected tokens may include: "<variable_set>".
I am stuck on this error, I am not even able to update any column of that particular table.
It is possible to do REORG through an SQL statement:
CALL SYSPROC.ADMIN_CMD('REORG TABLE SCHEMA.TABLENAME');
It follows from the error message, that you somehow submit the entire string Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE DB2ADMIN.XCATENTRYEXT index CATENTRY_ID INPLACE')") as a SQL statement, which obviously is incorrect.
Simply issue these on the shell command line:
db2 connect to <your database name here>
db2 REORG TABLE DB2ADMIN.XCATENTRYEXT
If you are using tool like dbeaver , you can go to Schema --> table name --> right click --> select tools and you should see option for reorg table

SQL SET DEFAULT not working in MS Access

Possible Duplicate:
DEFAULT clause in ALTER TABLE statement resulting in syntax error
I am trying to execute the following statement using a SQL query within MS Access;
ALTER TABLE [table] ALTER COLUMN [column] SET DEFAULT 'default value'
However, I get a dialog displaying the error Syntax error in ALTER TABLE statement.
And when I click OK it highlights the word DEFAULT. I also tried the following statement;
ALTER TABLE [table]
ADD CONSTRAINT [Default] DEFAULT 'default value' FOR [column]
And I get another error Syntax error in CONSTRAINT clause.
What is the correct syntax for setting a default value in MS Access? The db file is Access 2003 format.
Support for DEFAULT was included in Access DDL with Jet 4 (Access 2000). However it can only be used in DDL executed from an ADO connection.
This worked with Access 2007.
CurrentProject.Connection.Execute "ALTER TABLE MyTable " & _
"ALTER COLUMN field2 SET DEFAULT ""foo"";"
Note if your db file is Access 97 or earlier, you won't be able to set a field DEFAULT value from DDL.
It seems, there would be Constraint issue with your column. Although following DDL statement is the correct way.
ALTER TABLE Persons ALTER COLUMN City SET DEFAULT 'SANDNES'
Reference