Xampp で Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available. と表示される date にユニーク付与

Xampp で Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available. と表示されることがあります。

この状態では、各テーブル/カラムの内容を編集できません。

これがなぜ表示されるかというと、テーブルのデータを明確にする "ユニーク" が設定されていないため、「どのテーブルのどのカラムがどれで、どれをどうするの?」というのが SQL 上で明確になっていないためです。

このユニークという意味は日本語で言う「面白い」と言った意味ではなく、「特定の」「一つだけの」といった意味です。

今回はユニーク性のあるデータの date が元々あったので、それにユニークを与えました。
これは登録時間のため、ほぼ同一ということはありませんが、場合により同一秒ということもありえます(ミリ単位で言うと多分ないでしょう)。

他のコラムの、名前、住所、電話番号等は、同一性が考えられるので、ユニークには向きません。使えますが問題が生じやすくなります。

この元々ある使えるデータがある場合は、php はほぼ直すところはないため、楽な方法です。

170128xamppdate1.jpg
1, 上の方に Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available. というのが見えると思います。
また、テーブルの表示も
―――――――――――――――
+ オプション
name - address - tel - date
#### - #### - #### - ####(各データ)
―――――――――――――――
と表示され、編集できないのが見えます。

170128xamppdate2.jpg
2, 構造を開いて、テーブルの date (わかりやすいようにチェックを入れてあります)の「ユニーク」をクリックします。

170128xamppdate3.jpg
3, 確認「ALTER TABLE '######' ;」を本当に実行しますか?
と表示されるので OK をクリックします。

170128xamppdate4.jpg
4, 自動的に上の層に戻ります。
「ALTER TABLE 'meibo' ADD UNIQUE ('date');
というのが見えます。

170128xamppdate5.jpg
5, 上の方の Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available. がなくなり、編集できるモードになっています。
一番上の KumadaKumao さんを編集します。左の方の編集をクリックして編集モードへ移ります。

170128xamppdate6.jpg
6, 編集画面です。右側の値を編集をしてください。

170128xamppdate7.jpg
7, 「実行」をクリックすると表層へ戻ります。
「1行変更しました」と表示され、UshidaUshio さんへ変わりました。


================================================= 

今回の Xampp のバージョンはこちらです。
http://team-nekotarou.xyz/wp/2017/01/06/xampp-のバージョン/

Xampp はバージョンによって操作が変わりますので、御使いのバージョンに合わせて行ってください。

Xampp で Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available. と表示される SERIAL 編

Xampp で Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available. と表示されることがあります。

この状態では、各テーブル/カラムの内容を編集できません。

これがなぜ表示されるかというと、テーブルのデータを明確にする "ユニーク" が設定されていないため、「どのテーブルのどのカラムがどれで、どれをどうするの?」というのが SQL 上で明確にならないためです。

今回は カラムを追加し、そのカラムに SERIAL(または BIGNIT )を付与する方法です。このデータは重複することがないのでユニークとして扱われます。新たにカラムを追加しますが、mySQL 上で自動入力されるため振り直す必要がないので楽です。また php を触る必要はほぼありません。

170127 XamppCurrent selectionError1.jpg
1, 上の方に Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available. というのが見えると思います。
また、テーブルの表示も
―――――――――――――――
+ オプション
name - address - tel - date
#### - #### - #### - ####(各データ)
―――――――――――――――
と表示され、編集できないのが見えます。

170127 XamppCurrent selectionError2.jpg
2, 構造を開いて、中段のあたり、
「1 個のカラムを追加する at beginning of table」 実行
として、カラムを一つ追加してください。
追加する位置はどこでも良いのですが、わかりやすいように一番上が良いでしょう。
「実行」をクリックして新しいカラムを追加してください。

170127 XamppCurrent selectionError3.jpg
3, 次にコラムの構造を決めますが、code、SERIAL としてください。SERIAL はそのデータは一つに一つしか当てられずに重複しないものが自動的に形成されるので、これでそのデータが特定できることになります。
「保存」してください。

170127 XamppCurrent selectionError4.jpg
4, 「保存」すると自動的に表層に戻ります。code という欄が頭に増えて番号が自動的に 1 から振られているのが見えます。どれか「編集」を選ぶと、編集モードに変わります。

170127 XamppCurrent selectionError5.jpg
5, ちなみに今回は「Ushi」を選びました。電話番号を 「070」から「0123456789」に変更します。「実行」をクリックします。
(実はこの段階で code の データ型が bignit(20) unsigned になっているのが見えますが、Serial は Bignit のエイリアスです)。

170127 XamppCurrent selectionError6.jpg
6, 表層でデータの tel が 0123456789 に変わっているのがわかると思います。

--------------------

追記

170127 XamppCurrent selectionError7.jpg
7, 追記ですが、php のプログラムは変えていませんが無事に動いています。新しく 4 番で Simajirou を追加しました。

================================================= 

今回の Xampp のバージョンはこちらです。
http://team-nekotarou.xyz/wp/2017/01/06/xampp-のバージョン/

Xampp はバージョンによって操作が変わりますので、御使いのバージョンに合わせて行ってください。

Xampp for Windows 5.6.21 のテーブル名でのバグか?

Xampp for Windows 5.6.21 のテーブル名でのバグか?

今日、ほぼ同じ仕様の Xampp で、同じことをしていてエラーが出たマシンが2台ありました。
2台のうち、1台は若干 Xampp の仕様が異なりましたが、ほぼ同じです。

Xampp の仕様はこれです。
http://team-nekotarou.xyz/wp/2017/01/06/xampp-%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3/

php で mySQL に読み書きするプログラムで、どうやら一部のテーブル( news )に繋がらないようです。

1、データベースにつながっているかどうか、読みに行く php 書類で host 名を変えて繋がらないようにする。
  → 繋がらないで、全部の表示がされなくなるが、元に戻すと繋がる。
    → SQL との接続は問題ない。

2、同様の方法で特定のテーブルの名称を変えてみて繋がらなくしてみる。
  → 同じ症状のまま。
    → 特定のテーブルと繋がらないと推測できる。

3、mySQL 上の特定のテーブル名と、読みに行く php 書類で同一の名称( newsold )にして繋がるか確認したら繋がらない。
  → 同じ症状のまま。
    → 特定のテーブルと繋がらないとほぼ断定できる。

4、新たに mySQL 上で( n )というテーブルを作りテストしたら繋がる。データのインプットとアウトプットともに問題ない。
  → 症状は改善され、想定通りに動く。
    → 特定のテーブルに繋がらなかったことが原因。
      → 原因がわかって、めでたしめでたし。

5、これで終わりにしようと思ったが、面白がって元と同じ名前の news に変更したら、今度は問題なく繋がる。

6、しかし元のテーブルの名称を news に戻すと繋がらない。

7、よって、当初テーブルを作成するときに news とした場合は一部の Xampp に限って繋がらない、というバグのようです。

Xampp は時々不思議なバグの話を聞くので、これもその一つかもしれません。
以前書いて解明できていない、「エクスポートすると utf8-general-ci が utfmbt-general-ci に変わってしまう」のもバグの一つなのかもしれません。

Xampp phpMyAdmin での新規データベースを作成して新規ユーザをあてがう方法

170117xampp1.jpg
1, phpMyAdmin に root でログインする。

170117xampp2.jpg
2, 新規データベースを作成する(例:データベース名 nekotarou、照合順序は適切なものを選んでください。今回は uft8_general_ci とした)。

170117xampp3.jpg
3, 新規データベースを作ったら、次に特権をクリックする。下の方の 「 Add user account 」をクリックする。

170117xampp4.jpg
4, Add user account と表示されたら、それぞれ記入し、下段の方「 Database for user account」の「 □データベース "##(今回は nekotarou)" への全ての特権を与える」にチェックが入っているのを確認し、再下段の「実行」をクリックする。

170117xampp5.jpg
5, 「新しいユーザを追加しました」と表示されれば OK。

170117xampp6.jpg
6, ログオフし、新規ユーザでログインする。

170117xampp7.jpg
7, 新規データベースしか見えてなければ OK。
この時になぜか uftmb4_general_ci になる理由は不明。

xampp/mysql/data のデータベースを複製してリネームして使えるかと試したら、ダメだったの件

WP で元のを残しておきたくて、複製して作ろうと思いました。
データベースをエクスポート/インポートするのが面倒なので、xampp/mysql/data の中の個別のデータベースを複製してリネームして使えるかと試したら、ダメでした。

手抜きしてやったこと
xampp/mysql/data/wpdatabese
を複製して、
xampp/mysql/data/wpdatabese_2
としました。

そうすると、xampp の control panel で MySQL の Start をクリックしても MySQL が起動しません。
今日は 13日の金曜日なので良くないのかなとか、しつこくクリックすれば根負けしてくれるかなと思って数回クリックしてみたのですが、xampp は受け付けてくれませんでした。

ちゃんとやらないとバチが当たるようです。

Xampp のバージョン

Xampp のバージョン

(抜粋)

Xampp for Windows 5.6.21

データベースサーバ

サーバの種類: MariaDB

サーバのバージョン: 10.1.13-MariaDB - mariadb.org binary distribution

サーバの文字セット: UTF-8 Unicode (utf8)

ウェブサーバ

Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.21

データベースクライアントのバージョン: libmysql - mysqlnd 5.0.11-dev - 20120503

PHP 拡張: mysqli ドキュメント

PHP version: 5.6.21

phpMyAdmin

バージョン情報: 4.5.1, 最終安定バージョン: 4.6.5.2

(20170106 現在。間違っているかもしれないのでお調べください)

Copyright , © 鯖や SQL いろいろ, ALL right reserved