のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,604,926人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

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

    元スレMySQL 総合 Part18

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - megab + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    401 : 397 - 2010/09/26(日) 18:20:36 ID:??? (+30,+29,-76)
    >>400 ありがとうございます!!とても参考になります。
    正規化やリレーショナルな操作が苦手なため
    考えがもやもやしていましたが、目の前の霧が晴れました。
    400様の教えを元に試行錯誤してみたいと思います。
    本当に感謝です。400さん398さんに幸ありますように!
    402 : NAME IS - 2010/09/26(日) 22:31:02 ID:??? (+27,+29,-30)
    InnodbおんりーのDB鯖立てなきゃなんですが、
    実メモリ内に収まる範囲で運用できてるかどうかがわかりません…
    簡易チェックツールとかありませんかね?
    403 : NAME IS - 2010/09/27(月) 21:46:48 ID:??? (-27,-25,-45)
    MySQLのレプリケーションって、サーバをRAIDしているようなもんだと
    思っているのですが、認識的に正しいですか?
    404 : NAME IS - 2010/09/27(月) 23:31:03 ID:??? (+32,+29,-90)
    うーん自分のなかでそう理解するだけならいいけど
    その認識で他の人に説明するといろいろ誤解を招くと思う。

    RAID1は同時に両方に書くけど
    レプリケーションはマスタに書いた後スレーブに書くから、
    マスタが壊れるタイミングによってはスレーブに欲しいデータが
    存在しない場合がある、といったところが違う
    405 : NAME IS - 2010/09/28(火) 03:10:35 ID:??? (-14,-30,-109)
    すみません。

    Aというテーブルに、ユーザーのメールアドレスをクエリにしてデータの照会を行い、
    受け取った配列をBというテーブルにINSERTしたいと思っているのですが
    \"$row[id]\",\"$row[pass]\"という風にしてSQL文を発行しても、Bに挿入されません。
    print_r()で見てみると "","" のようにデータが空になってしまっています。

    以前、似たようなケースでやった時はデータを入れることができたのですが…。
    どのようにすればテーブルBにデータを移せるのでしょうか?
    407 : NAME IS - 2010/09/28(火) 07:24:37 ID:XeiSxRUI (+21,+29,-48)
    >>405
    PHP?知らないし、今回の件と直接関係ないけど
    プリペアードステートメントとかプレイスホルダを
    調べると(まわりの人が)幸せになれると思う
    409 : NAME IS - 2010/09/28(火) 16:19:41 ID:??? (+19,+26,-20)
    >>408
    プレースホルダとか使うのが間違いないけど、""内に直接変数書かないようにしたほうがいいんでない?
    411 : NAME IS - 2010/09/29(水) 04:33:21 ID:??? (-27,-30,-259)
    表示で時間がかかる???
    ありえんだろ。

    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");
    412 : NAME IS - 2010/09/29(水) 07:21:00 ID:??? (+27,+29,-30)
    コンソールへの出力は、するとしないとで速度が全然違うよ。
    (ディスク上の)ファイルに出すのは、あまり速度の足引っ張らないんだけどね。
    418 : NAME IS - 2010/10/02(土) 08:29:20 ID:??? (-17,-30,-130)
    特定のテーブル(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' に対して許可されていません 、らしいのですが、
    よく分りませんでした。

    どうすれば特定テーブルだけにアクセスできるユーザを作れるのでしょうか?
    420 : NAME IS - 2010/10/03(日) 03:09:31 ID:??? (-4,-30,-125)
    初歩的なことですが、教えてください。

    VARCHAR(32) PRIMARY KEY DEFAULT NULL

    上記が通らないのですが、なぜ主キーをつけると
    VARCHARにはDEFAULT NULLがつけられなくなるの
    でしょうか。

    PRIMARY KEYによりNOT NULL制約がつけられている
    ので、ここに値を入れない限りはエラーになる
    (insertやupdateはできない)というカラムにしたい
    のですが、ご教示いただけますと幸いです。

    よろしくお願いします。
    421 : NAME IS - 2010/10/03(日) 06:45:07 ID:??? (-23,-30,-106)
    俺も初心者ですが。

    primary key は、NULLが認められていない
    default null は、NULLが認められていないカラムには設定不可

    ダブルでNG

    >なぜ主キーをつけるとVARCHARにはDEFAULT NULLがつけられなくなるのか

    varchar だからダメっていうわけでなく、上記理由でNG intでもダメだし

    最後の文の意図がまったくわかりませんでした。
    読み取れるところから、
    >insertやupdateはできない

    別のdatabaseに表を作って、select権限のみgrantすればいいんじゃないですかね。
    参照専用のなにか仕組みがあるんだろうか?
    422 : NAME IS - 2010/10/03(日) 08:28:21 ID:9zQ6kT+B (+24,+29,-30)
    >>421 >>420 さんが理解できるでしょうか?

    PRIMARY KEY の要件を無視しているお話しだったので、理解してもらえないと私は思っています。

    もしくは釣りだったかもしれません。

    423 : 420 - 2010/10/03(日) 15:16:54 ID:??? (+36,+29,-97)
    すみません。
    釣りではなく素で質問させていただきました。

    主キーは絶対にNULL以外を入れなければいけないのにも
    かかわらず、DEFAULT NULL制約をつけるということが矛盾
    しているのはわかるのですが、このカラムに何も指定をしな
    いでINSERTをかけると、空文字が入ります。
    これを防ぎたいと思い質問させていただいたのが趣旨と
    なります。

    プログラム側で、間違えて主キーカラムを指定しないで
    INSERTをしてしまった場合、DB側でエラーにしたいの
    ですが、無理であればプログラム側での制御にします。
    424 : NAME IS - 2010/10/03(日) 15:30:33 ID:??? (-4,-12,-2)
    その空文字はNULLではないでしょう。
    426 : NAME IS - 2010/10/03(日) 16:10:40 ID:??? (-27,-30,-168)
    もしかしてこれか?

    ・DEFAULT 値は定数でなければならず、関数や式を使用することはできない。
    DEFAULT 値が指定されていない場合、そのカラムには、次の方法で、MySQL によって DEFAULT 値が自動的に割り当てられる。
    値として NULL を取れるカラムの場合、デフォルト値は NULL になる。
    NOT NULL として宣言されているカラムの場合、デフォルト値はそれぞれのカラム型によって決まる。

    PRIMARY KEYはNOT NULL→だから暗黙にDEFAULT ''

    だとしたらひでぇw
    もし空文字列がキーとして不要なのであれば、CHECK制約ではじくとか。
    428 : NAME IS - 2010/10/03(日) 16:18:15 ID:9zQ6kT+B (+26,+19,-87)
    >>423-424

    > このカラムに何も指定をしないでINSERTをかけると、空文字が入ります。

    空文字とNULLの違いをご存知だと言う前提でレスします。


    検査制約( CHECHK でしたっけ? )を使えば良いと考えました。

    けれども、MySQLでは、検査制約は可能なのでしょうか?

    手元にマニュアルが無いので適切に回答できなくてスマソ
    429 : NAME IS - 2010/10/03(日) 16:23:24 ID:??? (-27,-30,-54)
    primary keyをセットした時点で重複は弾かれるけど、
      id varchar(10) not null default '' primary key
    これだと、最初の1レコードのみは主キーが空文字で登録できてしまうね。

    要するにid bigint unsigned auto_increment最強。
    430 : 420 - 2010/10/03(日) 16:25:29 ID:??? (+32,+29,-82)
    皆さま。
    ありがとうございます。

    状況としましてはおっしゃるとおり、PRIMARY KEYはNOT NULLで
    あるため、自動的にDEFAULT '' が適用されてしまうことの対応策
    を教えていただきたく、書き込ませていただきました。
    空文字で入ってしまいますと余分なデータが入ってしまうためです。

    現状のサーバ設定を崩すことはできないため、なんとか教えてい
    ただいたことを参考に試行錯誤してみたいと思います。

    取り急ぎ、御礼申し上げます。
    431 : 424 - 2010/10/03(日) 16:48:58 ID:??? (-21,-29,-57)
    >>428
    > >>423-424
    >
    > > このカラムに何も指定をしないでINSERTをかけると、空文字が入ります。
    >
    > 空文字とNULLの違いをご存知だと言う前提でレスします。
    >

    おれもかよw
    432 : NAME IS - 2010/10/03(日) 17:19:33 ID:??? (+23,+29,-10)
    >>427
    列制約としては指定できたんじゃなかった?
    バージョンやストレージエンジンによって違うのかも知れんけど。
    433 : NAME IS - 2010/10/03(日) 17:50:41 ID:??? (+27,+29,-7)
    指定できて、コマンド通るけど、制約違反を華麗にスルー
    434 : NAME IS - 2010/10/04(月) 14:32:37 ID:??? (-26,-29,-120)
    MySQLにおいてDB接続時間の設定を行うにはどうすれば良いでしょうか?

    具体的には、PHPスクリプト内でDB接続を行った後に
    close漏れがあったとします。

    この場合に、DB切断コードの実装漏れがあったとしても
    連続で5分以上DB接続状態が残っている場合には、
    自動で切断する様にしたいです。

    可能であればGUI(phpMyAdmin)上で設定出来るのならしたいです。

    ※現在は、サクラインターネットの共有サーバを想定しています。
    437 : NAME IS - 2010/10/04(月) 18:19:26 ID:??? (-17,-4,-3)
    >>436
    さくらのレンタルサーバなので分りません。
    438 : NAME IS - 2010/10/04(月) 18:53:12 ID:??? (-26,-29,-6)
    phpMyAdmin動くんならわかるだろ
    439 : NAME IS - 2010/10/04(月) 18:56:00 ID:??? (+23,+29,-2)
    >>438
    どうやってみれば良いのでしょうか?
    441 : NAME IS - 2010/10/04(月) 19:16:09 ID:??? (+27,+29,-12)
    自称中級者によくある「たぶん原因はコレだろう」だろ
    大体は全然間違ってる
    442 : NAME IS - 2010/10/05(火) 08:05:06 ID:??? (+16,+18,-36)
    MySQLで再帰SQL相当の処理ってどうやって実現してますか?
    ストアドに頼るしかないのでしょうか。
    443 : NAME IS - 2010/10/05(火) 08:24:58 ID:??? (-27,-29,-20)
    connect byで、ツリー型の再帰
    withで、再帰呼び出しができる
    444 : NAME IS - 2010/10/05(火) 08:45:03 ID:??? (+18,+23,-2)
    あ、ごめ MySQLのスレだった >>443間違い
    446 : NAME IS - 2010/10/05(火) 15:29:47 ID:??? (+14,+26,+0)
    ぐぐれかす
    447 : NAME IS - 2010/10/05(火) 19:47:23 ID:??? (+80,-30,-52)
    selectがおかしいです。
    select * from hoge where a = 'あ';

    とすると、
    |"あ" |"hoge" | null |
    |"あ" |"hohi" | null |
    ...

    って感じで出力されるはずなんですが、
     | |"hoge" | null |
     | |"hohi" | null |
    ...

    って感じで"あ"のとこが押しつぶされて出力されてしまいます。
    何がどうなってるんでしょうか...?
    450 : 447 - 2010/10/05(火) 20:01:35 ID:qhtr8KRl (+19,+29,-3)
    そのとうりですね。させん
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - megab + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について