您好:
網路上一個範例
CREATE PROCEDURE insert_user(IN U_first_name VARCHAR(50), IN U_last_name VARCHAR(50), IN U_email Varchar(50), IN U_gender Varchar(50))
BEGIN
INSERT INTO users (first_name, last_name, email, gender) VALUES (U_first_name, U_last_name, U_email, U_gender);
-- SELECT U_first_name ,U_last_name;
END ;
我python 執行以下程式碼 會過,但資料沒寫入??
可是 我看 id(自動序號),又有往下佔位
import mysql.connector
mydb = mysql.connector.connect(
host="127.0.0.1", # 数据库主机地址
user="my", # 数据库用户名
passwd="123456", # 数据库密码
database="runoob_db",
auth_plugin='mysql_native_password'
)
mycursor = mydb.cursor();
args =['Jane','Doe','jane.doe@automation.com', 'M'] ;
# execute the command
mycursor.callproc('insert_user', args);
請問,這是哪邊有錯誤嗎?
謝謝!
https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-transaction.html
裡面有一段
# Make sure data is committed to the database
cnx.commit()
cursor.close()
cnx.close()
insert , update, delete, 這些操作都要用 commit, 來做確認.
否則是會在程式結束,連線脫離時,做 rollback.
平時使用MySQL 好像不需要 commit,是因為設定為 auto commit.
改成
args = ('Jane','Doe','jane.doe@automation.com', 'M')
試試看
是說
python 列尾要加分號嗎
您好:改用(),沒效..
改這樣呢?我猜陣列它接不上.....
mycursor.callproc('insert_user','Jane','Doe','jane.doe@automation.com', 'M');
再不然PL/SQL要接array....