在數據庫中,VALUES
關鍵字通常用于插入或更新數據時指定要插入或更新的具體值。這些值必須是預定義的常量或變量,不能直接自定義為復雜的表達式或函數。
然而,你可以通過一些方法間接地實現自定義值的效果:
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
name = 'Alice'
age = 30
# 使用參數化查詢插入數據
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", (name, age))
conn.commit()
conn.close()
在這個例子中,?
是參數占位符,實際值在 execute
方法的第二個參數中傳遞。這種方法可以防止SQL注入攻擊,并提高代碼的可讀性和可維護性。
DELIMITER //
CREATE PROCEDURE InsertUser(IN p_name VARCHAR(255), IN p_age INT)
BEGIN
INSERT INTO users (name, age) VALUES (p_name, p_age);
END //
DELIMITER ;
然后,你可以通過調用這個存儲過程來插入自定義值:
CALL InsertUser('Alice', 30);
請注意,不同的數據庫系統可能有不同的語法和功能,因此你需要查閱相應數據庫的文檔以了解如何實現這些方法。