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

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

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL Workbench

MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

504閲覧

SQL columnを復活させたい

nagataakira

総合スコア2

MySQL Workbench

MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2023/04/13 01:27

編集2023/04/13 03:05

実現したいこと

コマンドプロンプトでSQLの操作で削除してしまったカラムを復活させたいです

alter table テーブル drop column カラム名;


バックアップがない状態ですが、復活させることは可能でしょうか?
2ヶ月ほど前に保存したバックアップならありました。
.
.
.
.

前提

データベースはMySQLを使用。
バージョンは 8.0.21です。

.
.
.
.

試したこと

3つあります。

1.直前でテーブルをコピーしていたのですが、
select from で確認すると、empty setとなっており、中身のデータはコピーされていませんでした。よってコピーがバックアップの役割を果たせておらず、ダメでした。
.
.
.
2.こちらのサイトを参考に、削除した時間を戻そうとしましたが、ERROR 1064 (42000)のエラーが発生し、予約語がわからず止まっています。
調べたところ、こちらのサイトはoracle用の構文なので、今回は参考になりませんでした。

https://bebee5.com/sql-you-deleted-the-table-data/

select * from テーブル名 as of timestamp (systimestamp - interval '10' minute )

.
.
.
3.こちらのサイトを参考にMySQLのトランザクションを使えば復元が出来るのかなと思いました。
BEGIN;で開始したとしても、数時間前の消してしまったコマンドをやり直すことは可能なんでしょうか?
https://www.wakuwakubank.com/posts/200-mysql-transaction/

.
.

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

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

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

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

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

AbeTakashi

2023/04/13 01:43

まずは使用しているデータベースとそのバージョンを書いた方がいいと思いますよ。タグに"MySQL Workbench"が入ってるのでMySQLなのかな?という気もしますが。あと、一応my.cnfの内容も書ける範囲で書いておけば回答が出やすいかもです。レプリカやバイナリログの設定があれば対応方法が出てくるかも。コメントには書かずに質問文を編集してください。 ちなみに"as of timestamp"はすべてのデータベースでいつでも使えるわけではなさそうです。OracleとかMariaDB(MySQLの派生)では特定の条件の下で使えるようですが。 参考) https://techblog.istyle.co.jp/archives/887 参考ページはその辺の説明がなくて不親切ですね。
nagataakira

2023/04/13 02:27

コメントありがとうございます。 質問文を修正しました。
AbeTakashi

2023/04/13 02:44 編集

MySQL Workbenchはデータベースのクライアント(設計・作成・管理が行えるビジュアルツール)であり、データベースそのものではありませんので、情報としてはそれほど重要な情報ではありません。データベース自体何を使っているのかを確認してください(MySQLなのかMariaDBなのか)。あと、そのバージョン(8.x.xなのか5.7.xなのか10.x.xなのか)も回答するのに重要な情報です。
nagataakira

2023/04/13 03:03

ご指摘ありがとうございます。 MySQLで、バージョンは 8.0.21でした。
guest

回答1

0

ベストアンサー

2か月前のバックアップがありそこからのbinlogがあれば復旧できる可能性はあります。

参考)
https://www.ritolab.com/posts/98

デフォルトではbinlogは出てないので、予め出す設定してるかどうかになりますが、my.cnfなどの設定をご確認ください。

トランザクションに関しては、DDLに関しては自動で暗黙のコミットされるのでロールバックできないと思います。

参考)
https://zenn.dev/sayu/articles/58d6abfe33759f

投稿2023/04/13 03:17

AbeTakashi

総合スコア4537

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問