Reputation: 868
So my MySQL database is behaving a little bit wierd. This is my table:
Name shares id price indvprc
cat 2 4 81 0
goog 4 4 20 20
fb 4 9 20 20
I'm getting this #1062 error when I try to insert into the table. So I looked into it further and realized that when I try to insert values into the table, in which the name and shares values are the same, it will return the #1062 error. For example, If i inserted:
fb 4 6 20 20
It would return an error. But if i changed the shares number to 6, it would run fine. Is it because of one of my columns that could be unique, or is it just something with mysql?
Upvotes: 31
Views: 386042
Reputation: 436
Do not mix SQLAlchemy commands with Python's Try-Except. SQL will keep trying regardless, and the error will only show later in your program flow.
Upvotes: 0
Reputation: 1035
The DB I was importing had a conflict during the import due to the presence of a column both autoincrement and primary key.
The problem was that in the .sql file the table was chopped into multiple "INSERT INTO" and during the import these queries were executed all together.
MY SOLUTION was to deselect the "Run multiple queries in each execution" on Navicat and it worked perfectly
Upvotes: 0
Reputation: 4812
I had this error from mySQL using DataNucleus and a database created with UTF8 - the error was being caused by this annotation for a primary key:
@PrimaryKey
@Unique
@Persistent(valueStrategy = IdGeneratorStrategy.UUIDSTRING)
protected String id;
dropping the table and regenerating it with this fixed it.
@PrimaryKey
@Unique
@Persistent(valueStrategy = IdGeneratorStrategy.UUIDHEX)
protected String id;
Upvotes: -2
Reputation: 1
Repair the database by your domain provider cpanel.
Or see if you didnt merged something in the phpMyAdmin
Upvotes: 0
Reputation: 91
PRIMARY KEY
was selected AUTO_INCREMENT
.ALTER TABLE [table name] AUTO_INCREMENT = 1
Upvotes: 9
Reputation: 41
I solved it by changing the "lock" property from "shared" to "exclusive":
ALTER TABLE `table`
CHANGE COLUMN `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT COMMENT '' , LOCK = EXCLUSIVE;
Upvotes: 4
Reputation: 2743
Probably this is not the best of solution but doing the following will solve the problem
Step 1: Take a database dump using the following command
mysqldump -u root -p databaseName > databaseName.db
find the line
ENGINE=InnoDB AUTO_INCREMENT="*****" DEFAULT CHARSET=utf8;
Step 2: Change *******
to max id of your mysql table id. Save this value.
Step 3: again use
mysql -u root -p databaseName < databaseName.db
In my case i got this error when i added a manual entry to use to enter data into some other table. some how we have to set the value AUTO_INCREMENT
to max id using mysql command
Upvotes: 2
Reputation: 342
What is the exact error message? #1062 means duplicate entry violating a primary key constraint for a column -- which boils down to the point that you cannot have two of the same values in the column. The error message should tell you which of your columns is constrained, I'm guessing "shares".
Upvotes: 2
Reputation: 30252
Use SHOW CREATE TABLE your-table-name
to see what column is your primary key.
Upvotes: 9