私は自分のデータベースに新しいテーブルを追加できる関数を書いています。表がすでに私は、エラーメッセージを取得存在するとき、私が午前の問題がされています特定の種類のpymysql.err.InternalErrorsを除いて、どうすればよいのですか?
pymysql.err.InternalError: (1050, "Table 'doesthiswork' already exists")
をだから私は動作しますが、それはすべての内部エラーを除いている私のコードを除いて追加しました。私は、内部エラーではないと想定している特定のエラーを除いて、どのようにコードを取得するのですか?
import pymysql
def CreateTable(Host,User,Password,DataBase,TableName):
try:
conn = pymysql.connect(
host = Host,
user = User,
password= Password,
db = DataBase
)
a = conn.cursor()
tblName = TableName
sql = 'CREATE TABLE'+" "+ tblName + '(try varchar(128));'
a.execute(sql)
except pymysql.err.InternalError:
print (tblName + " " + 'already exist')
上記のコードは動作しますが、内部エラーの異なるタイプは、それがちょうどことを除いて、表のように既に実際の誤差そのものではなく存在するであろう浮上した場合、以前に述べたように。
@ AChampionの答えを受け入れてください。そして、あなたがもし/他のブロックを掛けることなく、より多くのエラーを処理するには、このアプローチを拡張することができ、エラーコードとエラーメッセージの間のマッピングを有することができ、例外オブジェクトからコードを読み込むという考えを提案しました。より公平になるでしょう。ありがとう! – alecxe
私はもう一つの答えを受け入れました。私は本当にうまく働くことになっているあなたの考えが好きでした。 – ZacAttack