質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

537閲覧

MySQLでプライマリーキーの存在確認をしたい

One_of_Arthur

総合スコア82

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2023/07/31 06:49

編集2023/07/31 06:51

実現したいこと

コードを最適化ししたい

前提

とりあえず、ぐぐりながら下記のようにコードを書いてみました。
ですが、プライマリーキーの存在確認はもっとシンプルにできるような気がするのですが、ぐぐっても分かりませんでした。
下記のコードのようにするしかないのでしょうか?

発生している問題・エラーメッセージ

無し

該当のソースコード

python3

1#!/usr/local/bin/python3.7 2# coding:utf-8 3 4import mysql.connector 5 6import _setting 7#randomSize = _setting.randomSize # randomのバイト数 8mysqlUserName = _setting.mysqlUserName # ユーザー名 9mysqlPassword = _setting.mysqlPassword # パスワード 10mysqlHost = _setting.mysqlHost # ホスト名(IPアドレス) 11mysqlDatabase = _setting.mysqlDatabase # データベース名 12 13print('Content-Type: text/html\n\n') 14 15primaryKey = 'マッキントッシュ' # 検索する内容 16 17# 接続情報を記述 18conn = mysql.connector.connect( 19 host = mysqlHost, 20 user = mysqlUserName, 21 password = mysqlPassword, 22 database = mysqlDatabase, 23) 24 25# 接続状況確認 26if conn.is_connected(): 27 try: 28 # 再接続を行うように設定 29 conn.ping(reconnect=True) 30 31 # カーソル作成 32 cr = conn.cursor(dictionary=True) 33 34 # クエリを作成 35 sql = (''' 36 SELECT * 37 FROM YSC_test001 38 WHERE user_name = %s 39 ''') 40 41 # where句のデータを指定 42 param = (primaryKey,) 43 44 # selectを実行 45 cr.execute(sql,param) 46 47 # 実行結果 48 if cr.rowcount > 0: 49 print(f'「{primaryKey}」はプライマリーキーに存在します。') 50 else: 51 print(f'「{primaryKey}」 is Not Found.') 52 53 except mysql.connector.Error as e: 54 55 print(e) 56 57 finally: 58 # クローズ 59 if cr is not None: 60 cr.close() 61 if conn is not None and conn.is_connected(): 62 conn.close() 63else: 64 65 exit()

補足情報(FW/ツールのバージョンなど)

mysql Ver 14.14 Distrib 5.7.43, for Linux (x86_64) using EditLine wrapper
Python 3.7.16

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2023/07/31 07:06

DB側に直ではなくアプリケーションを介すのはどういう経緯でしょうか。 アプリケーション側での重複チェックが目的なのであればテーブル定義含めて、そもそもどういう流れや設計で今回組み込もうとしているのか説明されないことには適切なアドバイスにならなそうに思います。
guest

回答1

0

SQL

1show index from テーブル名 where key_name='PRIMARY'

として、結果からColumn_nameを拾ってください。

投稿2023/07/31 07:19

編集2023/07/31 07:20
yambejp

総合スコア117674

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問