私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part18

みんなの評価 :
レスフィルター : (試験中)
>>400 ありがとうございます!!とても参考になります。
正規化やリレーショナルな操作が苦手なため
考えがもやもやしていましたが、目の前の霧が晴れました。
400様の教えを元に試行錯誤してみたいと思います。
本当に感謝です。400さん398さんに幸ありますように!
正規化やリレーショナルな操作が苦手なため
考えがもやもやしていましたが、目の前の霧が晴れました。
400様の教えを元に試行錯誤してみたいと思います。
本当に感謝です。400さん398さんに幸ありますように!
InnodbおんりーのDB鯖立てなきゃなんですが、
実メモリ内に収まる範囲で運用できてるかどうかがわかりません…
簡易チェックツールとかありませんかね?
実メモリ内に収まる範囲で運用できてるかどうかがわかりません…
簡易チェックツールとかありませんかね?
MySQLのレプリケーションって、サーバをRAIDしているようなもんだと
思っているのですが、認識的に正しいですか?
思っているのですが、認識的に正しいですか?
うーん自分のなかでそう理解するだけならいいけど
その認識で他の人に説明するといろいろ誤解を招くと思う。
RAID1は同時に両方に書くけど
レプリケーションはマスタに書いた後スレーブに書くから、
マスタが壊れるタイミングによってはスレーブに欲しいデータが
存在しない場合がある、といったところが違う
その認識で他の人に説明するといろいろ誤解を招くと思う。
RAID1は同時に両方に書くけど
レプリケーションはマスタに書いた後スレーブに書くから、
マスタが壊れるタイミングによってはスレーブに欲しいデータが
存在しない場合がある、といったところが違う
すみません。
Aというテーブルに、ユーザーのメールアドレスをクエリにしてデータの照会を行い、
受け取った配列をBというテーブルにINSERTしたいと思っているのですが
\"$row[id]\",\"$row[pass]\"という風にしてSQL文を発行しても、Bに挿入されません。
print_r()で見てみると "","" のようにデータが空になってしまっています。
以前、似たようなケースでやった時はデータを入れることができたのですが…。
どのようにすればテーブルBにデータを移せるのでしょうか?
Aというテーブルに、ユーザーのメールアドレスをクエリにしてデータの照会を行い、
受け取った配列をBというテーブルにINSERTしたいと思っているのですが
\"$row[id]\",\"$row[pass]\"という風にしてSQL文を発行しても、Bに挿入されません。
print_r()で見てみると "","" のようにデータが空になってしまっています。
以前、似たようなケースでやった時はデータを入れることができたのですが…。
どのようにすればテーブルBにデータを移せるのでしょうか?
>>408
プレースホルダとか使うのが間違いないけど、""内に直接変数書かないようにしたほうがいいんでない?
プレースホルダとか使うのが間違いないけど、""内に直接変数書かないようにしたほうがいいんでない?
表示で時間がかかる???
ありえんだろ。
sprintf(buff,"Query OK, %ld %s affected",
(long) mysql_affected_rows(&mysql),
(long) mysql_affected_rows(&mysql) == 1 ? "row" : "rows");
sprintf(buff,"%ld %s in set",
(long) mysql_num_rows(result),
(long) mysql_num_rows(result) == 1 ? "row" : "rows");
ありえんだろ。
sprintf(buff,"Query OK, %ld %s affected",
(long) mysql_affected_rows(&mysql),
(long) mysql_affected_rows(&mysql) == 1 ? "row" : "rows");
sprintf(buff,"%ld %s in set",
(long) mysql_num_rows(result),
(long) mysql_num_rows(result) == 1 ? "row" : "rows");
コンソールへの出力は、するとしないとで速度が全然違うよ。
(ディスク上の)ファイルに出すのは、あまり速度の足引っ張らないんだけどね。
(ディスク上の)ファイルに出すのは、あまり速度の足引っ張らないんだけどね。
特定のテーブル(testtbl)だけアクセス出来るユーザ(guest)を作ろうとしました。
GRANT SELECT ON testdb.testtbl TO guest IDENTIFIED BY 'guest';としたら、
ERROR 1142 (42000): GRANT command denied to user 'guest'@'localhost' for table 'testtbl'と返ってきます。
Message: コマンド %s は ユーザー '%s'@'%s' ,テーブル '%s' に対して許可されていません 、らしいのですが、
よく分りませんでした。
どうすれば特定テーブルだけにアクセスできるユーザを作れるのでしょうか?
GRANT SELECT ON testdb.testtbl TO guest IDENTIFIED BY 'guest';としたら、
ERROR 1142 (42000): GRANT command denied to user 'guest'@'localhost' for table 'testtbl'と返ってきます。
Message: コマンド %s は ユーザー '%s'@'%s' ,テーブル '%s' に対して許可されていません 、らしいのですが、
よく分りませんでした。
どうすれば特定テーブルだけにアクセスできるユーザを作れるのでしょうか?
初歩的なことですが、教えてください。
VARCHAR(32) PRIMARY KEY DEFAULT NULL
上記が通らないのですが、なぜ主キーをつけると
VARCHARにはDEFAULT NULLがつけられなくなるの
でしょうか。
PRIMARY KEYによりNOT NULL制約がつけられている
ので、ここに値を入れない限りはエラーになる
(insertやupdateはできない)というカラムにしたい
のですが、ご教示いただけますと幸いです。
よろしくお願いします。
VARCHAR(32) PRIMARY KEY DEFAULT NULL
上記が通らないのですが、なぜ主キーをつけると
VARCHARにはDEFAULT NULLがつけられなくなるの
でしょうか。
PRIMARY KEYによりNOT NULL制約がつけられている
ので、ここに値を入れない限りはエラーになる
(insertやupdateはできない)というカラムにしたい
のですが、ご教示いただけますと幸いです。
よろしくお願いします。
俺も初心者ですが。
primary key は、NULLが認められていない
default null は、NULLが認められていないカラムには設定不可
ダブルでNG
>なぜ主キーをつけるとVARCHARにはDEFAULT NULLがつけられなくなるのか
varchar だからダメっていうわけでなく、上記理由でNG intでもダメだし
最後の文の意図がまったくわかりませんでした。
読み取れるところから、
>insertやupdateはできない
別のdatabaseに表を作って、select権限のみgrantすればいいんじゃないですかね。
参照専用のなにか仕組みがあるんだろうか?
primary key は、NULLが認められていない
default null は、NULLが認められていないカラムには設定不可
ダブルでNG
>なぜ主キーをつけるとVARCHARにはDEFAULT NULLがつけられなくなるのか
varchar だからダメっていうわけでなく、上記理由でNG intでもダメだし
最後の文の意図がまったくわかりませんでした。
読み取れるところから、
>insertやupdateはできない
別のdatabaseに表を作って、select権限のみgrantすればいいんじゃないですかね。
参照専用のなにか仕組みがあるんだろうか?
すみません。
釣りではなく素で質問させていただきました。
主キーは絶対にNULL以外を入れなければいけないのにも
かかわらず、DEFAULT NULL制約をつけるということが矛盾
しているのはわかるのですが、このカラムに何も指定をしな
いでINSERTをかけると、空文字が入ります。
これを防ぎたいと思い質問させていただいたのが趣旨と
なります。
プログラム側で、間違えて主キーカラムを指定しないで
INSERTをしてしまった場合、DB側でエラーにしたいの
ですが、無理であればプログラム側での制御にします。
釣りではなく素で質問させていただきました。
主キーは絶対にNULL以外を入れなければいけないのにも
かかわらず、DEFAULT NULL制約をつけるということが矛盾
しているのはわかるのですが、このカラムに何も指定をしな
いでINSERTをかけると、空文字が入ります。
これを防ぎたいと思い質問させていただいたのが趣旨と
なります。
プログラム側で、間違えて主キーカラムを指定しないで
INSERTをしてしまった場合、DB側でエラーにしたいの
ですが、無理であればプログラム側での制御にします。
もしかしてこれか?
・DEFAULT 値は定数でなければならず、関数や式を使用することはできない。
DEFAULT 値が指定されていない場合、そのカラムには、次の方法で、MySQL によって DEFAULT 値が自動的に割り当てられる。
値として NULL を取れるカラムの場合、デフォルト値は NULL になる。
NOT NULL として宣言されているカラムの場合、デフォルト値はそれぞれのカラム型によって決まる。
PRIMARY KEYはNOT NULL→だから暗黙にDEFAULT ''
だとしたらひでぇw
もし空文字列がキーとして不要なのであれば、CHECK制約ではじくとか。
・DEFAULT 値は定数でなければならず、関数や式を使用することはできない。
DEFAULT 値が指定されていない場合、そのカラムには、次の方法で、MySQL によって DEFAULT 値が自動的に割り当てられる。
値として NULL を取れるカラムの場合、デフォルト値は NULL になる。
NOT NULL として宣言されているカラムの場合、デフォルト値はそれぞれのカラム型によって決まる。
PRIMARY KEYはNOT NULL→だから暗黙にDEFAULT ''
だとしたらひでぇw
もし空文字列がキーとして不要なのであれば、CHECK制約ではじくとか。
>>423-424
> このカラムに何も指定をしないでINSERTをかけると、空文字が入ります。
空文字とNULLの違いをご存知だと言う前提でレスします。
検査制約( CHECHK でしたっけ? )を使えば良いと考えました。
けれども、MySQLでは、検査制約は可能なのでしょうか?
手元にマニュアルが無いので適切に回答できなくてスマソ
> このカラムに何も指定をしないでINSERTをかけると、空文字が入ります。
空文字とNULLの違いをご存知だと言う前提でレスします。
検査制約( CHECHK でしたっけ? )を使えば良いと考えました。
けれども、MySQLでは、検査制約は可能なのでしょうか?
手元にマニュアルが無いので適切に回答できなくてスマソ
primary keyをセットした時点で重複は弾かれるけど、
id varchar(10) not null default '' primary key
これだと、最初の1レコードのみは主キーが空文字で登録できてしまうね。
要するにid bigint unsigned auto_increment最強。
id varchar(10) not null default '' primary key
これだと、最初の1レコードのみは主キーが空文字で登録できてしまうね。
要するにid bigint unsigned auto_increment最強。
皆さま。
ありがとうございます。
状況としましてはおっしゃるとおり、PRIMARY KEYはNOT NULLで
あるため、自動的にDEFAULT '' が適用されてしまうことの対応策
を教えていただきたく、書き込ませていただきました。
空文字で入ってしまいますと余分なデータが入ってしまうためです。
現状のサーバ設定を崩すことはできないため、なんとか教えてい
ただいたことを参考に試行錯誤してみたいと思います。
取り急ぎ、御礼申し上げます。
ありがとうございます。
状況としましてはおっしゃるとおり、PRIMARY KEYはNOT NULLで
あるため、自動的にDEFAULT '' が適用されてしまうことの対応策
を教えていただきたく、書き込ませていただきました。
空文字で入ってしまいますと余分なデータが入ってしまうためです。
現状のサーバ設定を崩すことはできないため、なんとか教えてい
ただいたことを参考に試行錯誤してみたいと思います。
取り急ぎ、御礼申し上げます。
MySQLにおいてDB接続時間の設定を行うにはどうすれば良いでしょうか?
具体的には、PHPスクリプト内でDB接続を行った後に
close漏れがあったとします。
この場合に、DB切断コードの実装漏れがあったとしても
連続で5分以上DB接続状態が残っている場合には、
自動で切断する様にしたいです。
可能であればGUI(phpMyAdmin)上で設定出来るのならしたいです。
※現在は、サクラインターネットの共有サーバを想定しています。
具体的には、PHPスクリプト内でDB接続を行った後に
close漏れがあったとします。
この場合に、DB切断コードの実装漏れがあったとしても
連続で5分以上DB接続状態が残っている場合には、
自動で切断する様にしたいです。
可能であればGUI(phpMyAdmin)上で設定出来るのならしたいです。
※現在は、サクラインターネットの共有サーバを想定しています。
>>436
さくらのレンタルサーバなので分りません。
さくらのレンタルサーバなので分りません。
>>438
どうやってみれば良いのでしょうか?
どうやってみれば良いのでしょうか?
MySQLで再帰SQL相当の処理ってどうやって実現してますか?
ストアドに頼るしかないのでしょうか。
ストアドに頼るしかないのでしょうか。
あ、ごめ MySQLのスレだった >>443間違い
selectがおかしいです。
select * from hoge where a = 'あ';
とすると、
|"あ" |"hoge" | null |
|"あ" |"hohi" | null |
...
って感じで出力されるはずなんですが、
| |"hoge" | null |
| |"hohi" | null |
...
って感じで"あ"のとこが押しつぶされて出力されてしまいます。
何がどうなってるんでしょうか...?
select * from hoge where a = 'あ';
とすると、
|"あ" |"hoge" | null |
|"あ" |"hohi" | null |
...
って感じで出力されるはずなんですが、
| |"hoge" | null |
| |"hohi" | null |
...
って感じで"あ"のとこが押しつぶされて出力されてしまいます。
何がどうなってるんでしょうか...?
そのとうりですね。させん



類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part15 (1001) - [94%] - 2009/4/20 12:15 ☆
- MySQL 総合 Part17 (1001) - [94%] - 2010/6/10 20:47 ○
- MySQL 総合 Part19 (982) - [94%] - 2011/6/9 2:33
- MySQL 総合 Part26 (860) - [89%] - 2023/2/2 9:30
- MySQL 総合 Part20 (995) - [89%] - 2011/10/17 4:48
- MySQL 総合 Part21 (1001) - [89%] - 2011/12/25 22:16
- MySQL 総合 Part22 (1001) - [89%] - 2012/7/10 16:45
- MySQL 総合 Part23 (992) - [89%] - 2013/8/11 17:00
- MySQL 総合 Part24 (1010) - [89%] - 2015/2/14 4:46
- MySQL 総合 Part25 (947) - [89%] - 2017/6/18 6:30
- MySQL vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について