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

    元スレMySQL 総合 Part25

    mysql覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    101 = :

    >>100
    だから、それが外部キーなのかと。

    MySQLの狭義の外部キーではない、
    と俺は思う。
    話の中で、外部キーといって
    制約がないとか言われたら、
    混乱必至。

    102 = :

    >>101
    だから外部キーではないよ。 それは最初から言ってる。

    103 :

    キーじゃない

    104 = :

    そのテーブル内ではキー

    105 = :

    >>102
    あなたが繰り返し言ってる「連携している」ってのは具体的にどういうこと?一致している以上に具体的な何かがあるんだよね
    それを言ってよ

    それが言えないんだったら俺様用語を勝ってに振り回してろとしか言えんよ

    106 = :

    >>105
    リレーショナル

    108 = :

    ○具体的に言え
    ×英訳しろ

    109 = :

    cleateって何なのか考えこんじゃったわ

    110 = :

    ERROR 1064 (42000): You have an error in your SQL syntax;
    check the manual that corresponds to your MySQL server version
    for the right syntax to use near 'cleate table

    111 :

    制約しないで連携ってどうやんの?

    112 = :

    dead lockに関する質問です。
    mysql version: 5.6.12
    tx_isolation: REPEATABLE-READ

    create TABLE tmp ( id bigint(10) NOT NULL auto_increment, name varchar(128) NOT NULL, PRIMARY KEY(id),UNIQUE KEY uk_name (name)) ENGINE=InnoDB;
    insert into tmp values (null, "20");
    insert into tmp values (null, "30");

    この状態から以下の手順を1,2,3,4,5と実施すると手順5でdeadlockが発生します。
    こちらの原因はなんでしょうか?

    トランザクション1
    手順1
    begin;
    手順3
    insert into tmp values (null,"30"),(null, "35") ON DUPLICATE KEY UPDATE name = VALUES(name);
    手順5
    insert into tmp values (null,"10"),(null, "11") ON DUPLICATE KEY UPDATE name = VALUES(name);

    トランザクション2
    手順2
    begin;
    手順4
    insert into tmp values (null, "20"),(null,"25") ON DUPLICATE KEY UPDATE name = VALUES(name);

    113 = :

    外部キー制約をテーブルに定義しなくても結合はできるからそういうことでしょ

    114 = :

    外部結合ですね

    115 = :

    >>112
    insertとupdateしかしてないのにほんとかよとか思ってやってみたら再現したw
    なにこれw

    116 = :

    > name = VALUES(name);

    何をしたいのコレ?

    117 = :

    >>116
    データが存在するしないに関わらずデータを更新または挿入するためです
    こちらのことサンプルではほぼ無意味ですが、問題を簡素化して抜き出したものです

    118 = :

    >>111
    JOINとか

    119 = :

    JOIN してるだけで外部キーとか言わない方がいい、混乱するだけ

    120 = :

    制約かけるかどうかは置いといて
    そのキーを使って結合出来るならそれは外部キーでしょ

    121 = :

    そのキーを使って じゃなかった
    その属性を使って

    122 = :

    普通はそういう使い方しないから

    123 = :

    外部キーみたいに
    って最初から書いてるんだけどそこはスルーなのかな

    124 = :

    俺様用語好き勝手に振り回しておけ、ヴァカ

    125 = :

    そもそもJOINでカラム指定するのは制約だろ

    126 = :

    >>125
    そのカラムは何と呼ぶの?

    127 = :

    名乗るほどのもんじゃありやせん

    128 = :

    人呼んでカラムの大政

    130 = :

    コンピュータの全ての分野を網羅したい場合、何学科に行くのが良いでしょうか?
    情報科学科?電気電子工学科?物理学科?

    131 = :

    行くとこ行くとこにこの質問貼ってあってイラっとくるな

    133 = :

    select id from rank order by good-bad;

    135 = :

    >>133
    こんなことできるのか
    知らなかった

    136 = :

    >>112
    暗黙にロックがかかってるんでしょ。

    INSERT ... SELECT ...でもロックが
    かかるときがあるし、
    MySQL(InnoDB)のくせと思うしか
    ないのでは。

    137 :

    節子、それバグや

    139 = :

    DB設計を語るスレに行った方が良いんじゃね

    141 = :

    全角数字、全角英字、全角ひらがな、全角カタカナ、漢字以外の文字が文字列内に含まれるか否かを判定したいです。
    下記select文で書くとすると、'?????'の箇所はどのような記述をすればよいでしょうか。

    select '文字列' regexp '?????'

    142 = :

    >>112
    手順3で name="30" を INSERT した時に、uk_name インデックスにおいて name="30" の参照先(PK)が
    新しい id に変わるじゃないですか。それによって、uk_name インデックスの name=20~30 の間に
    ギャップロックがかかってるみたいです。

    ですので、手順4で name="20" or name="25" を入れた時にロックの解除を待ち続けてしまうわけです。
    なお、name="15" とか name="40" とかはギャップロックの範囲外なのですぐに INSERT できます。

    uk_name はユニークキーなので、ロックをかけなくともファントムリードは起きえない
    気がするのですが、なんでギャップロックを取ってるのかはよくわかりません... だれか教えて

    なおこの不具合は、分離レベルを READ-COMMITTED にすると発生しません。

    143 = :

    >>142
    仕様だろ。
    コストに配慮して、広くロック
    しちゃうんだろ。

    144 = :

    新聞購読を止めて、月3000~4000円、年間36000~48000円の節約

    新聞にそのような金を払う価値はない

    ただでさえ要らない
    なぜなら新聞は国民の方を向いておらず、広告主のための報道しかしないからだ

    それに金を払って購読することは自らの首を絞める自殺行為に等しい

    145 = :

    確かInnoDBって普通の行updateでもテーブルロックかかるよね。
    where句でindexじゃないカラム指定してるとフルスキャンでテーブルロックされるとか

    146 = :

    >>145
    インデックスがないならしかたない。
    ロック対象レコードを特定してる
    時間は読めないししても不毛かも
    しれないし。

    悪くない判断だと思うけど。

    149 :

    テーブルのカラム名とデータはどうなっているの?

    150 = :

    select 列1 from テーブル where 列1 in (1, 2, 3)


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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