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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

773閲覧

読み込んだファイルの文字列をチェックし、新しくテーブルごとにファイルを作成する方法

ruuuu

総合スコア167

Python 3.x

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/22 02:24

編集2021/12/22 06:00

現在、作成したいプログラムがあるのですが、要件が複雑でして方法が分からず質問させて頂きました。
手元にSQLファイルがあるのですが、こちらのSQLファイルから「AUTO_INCREMENT」と記載されている箇所があった場合、その箇所を削除し、テーブルごとに新しくSQLファイルを作成するといったことを実現したいです
元のSQLファイル(stage.sql)は以下になります。
※こちら省略しているのですが、行数的には凡そ10万行程あります

-- -- テーブルの構造 `client_db_test_1050` -- CREATE TABLE IF NOT EXISTS `client_db_test_1050` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '番号', `relation_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'testID', ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='test1' AUTO_INCREMENT=1020 ; -- -- テーブルの構造 `client_db_test_2010` -- CREATE TABLE IF NOT EXISTS `client_db_test_2010` ( `id` int NOT NULL COMMENT '番号', `relation_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'testID', ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='test2';

こちらのテーブルからCREATE TABLE文を抜き出して、client_db_test_1050.sqlファイルやclient_db_test_2010.sqlファイルを作成していくといったプログラムを作成したいと考えております。
抜き出した後のclient_db_test_1050.sqlファイルなどは以下のようにしたいです。

CREATE TABLE IF NOT EXISTS `client_db_test_1050` ( `id` int NOT NULL COMMENT '番号', `relation_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'testID', ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='test1';

現状の実装途中のプログラムは以下になりますが、そもそもまずどこから手をつけて良いのかがわからない状況に陥ってしまっています。
どなたか、ご助言頂けましたら幸いです

path = './stage.sql' file_name = "client_db_test_1050.sql" with open(path) as f: print(f.read()) data_lines = f.read() data_lines = data_lines.replace("AUTO_INCREMENT", "") with open(file_name, mode="w",) as f: f.write(data_lines)

※使用OSはMacOS Catalinaです。

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

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

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

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

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

melian

2021/12/22 02:40

結果が同じであれば Python 以外のプログラミング言語やツールを利用しても構いませんか?
ruuuu

2021/12/22 02:43

はい!問題ございません!
ruuuu

2021/12/22 02:48

@melian お手数ですが、ご教示頂けましたら幸いです
melian

2021/12/22 02:55

そうですね、例えばコマンドラインでシェルスクリプトを使えると良いのですが、そちらの環境は Windows でしょうか?
ruuuu

2021/12/22 03:02

いえ...PCはMacを使用しております
melian

2021/12/22 03:05 編集

了解です、一応 Mac(OSX) を使っている事と、Python 以外の手段を使っても構わない旨を質問に追記しておくとよいかと思います(回答が付きやすくなるでしょうから)。
ruuuu

2021/12/22 03:11

承知しました。
guest

回答1

0

自己解決

別で立てさせて頂いた質問が解決したことで、こちらの質問も解決に至りました。

投稿2021/12/23 08:55

ruuuu

総合スコア167

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問