2011-04-19 63 views
1

我想使用Python 這裏我的代碼MYSQL和python錯誤

import MySQLdb 
#connect to db 
db= MySQLdb.connect(host= "localhost", 
       user="root", 
       passwd="newpassword", 
       db="new_schema") 
#setup cursor 
cursor = db.cursor() 
#create anooog1 table 
cursor.execute("DROP TABLE IF EXISTS try") 
sql = """CREATE TABLE try (
     COL1 INT,   COL2 INT)""" 
cursor.execute(sql) 


#insert to table 
cursor.execute("""INSERT INTO try VALUES (%s,%s)""",(188,90)) 
db.commit() 
db.rollback() 
#show table 
cursor.execute("""SELECT * FROM try""") 

print cursor.fetchall() 
db.close() 

插入在MYSQL數據庫中的數據,但錯誤是在我的SQL

Error: `new_schema`.`try`: table data is not editable because there is no primary key defined for the table ... 

我該怎麼辦?

+0

你爲什麼這樣做'commit'後'rollback'? – gruszczy 2011-04-19 22:24:07

+0

它有什麼問題? – roro 2011-04-19 22:29:08

+0

如何定義主鍵? – 2011-04-19 22:32:26

回答

0

你的錯誤是因爲你創建了一個沒有主鍵的表。

使用此語句(或類似):

sql = """CREATE TABLE try (COL1 INT, COL2 INT, PRIMARY KEY (COL1))""" 

在這裏,我們指定COL1是要表的主鍵。根據需要進行修改以滿足您的要求。

如果你想要一個字符串列(長度128)添加到您的表:

CREATE TABLE try (COL1 INT, COL2 INT, MyString VARCHAR(128), PRIMARY KEY (COL1)) 
+0

感謝提前它workss =) – roro 2011-04-19 22:33:49

+0

@ p.campbell!如果我想添加字符串呢? – roro 2011-04-19 22:36:36

+1

@roro:不客氣!當您找到最佳答案時,請務必使用綠色複選標記來解答所有問題。 – 2011-04-19 22:38:30