元スレMySQL 総合 Part15
mysql覧 / PC版 /みんなの評価 : ☆
501 = :
>>500
http://dev.mysql.com/doc/refman/5.1/ja/insert-on-duplicate.html
502 = :
>>500
>レコードの存在チェックをかけたいカラムはプライマリキーではありません。
503 = :
ユニークならok
504 = :
>>491
どの文字がどのように化けるか具体的に。
508 = :
mysqlbenchでコネクション数を1000より大きくしたいのですが。。。
どなたか方法ご存知ありませんか?
509 = :
>>508
存じております><
510 = :
>>501
横やりなんだけど
> ON DUPLICATE KEY UPDATE を利用する時は DELAYED オプションは無視されます。
ってあるじゃん。やっぱりそうなると大規模じゃ無理ぽ?みんなどうしてるのかな。
511 = :
>>490
読んだけど、けども・・・。
512 = :
>>511
なんだ、はっきり言え
513 :
オートインクリメントで0から始める事ってできないんですか?
514 = :
>>512
他に読むべき本が・・・、あるっ・・・!
初心者向けなのはわかるけど、あまり理系に向いてないというか浮かんでくる疑問が多くてこれ一冊じゃわかった気にならない。
>>513
手動でsequenceのテーブル書き換えるかAUTO_INCREMENTを0にしたらどうかな。結果報告待ってます。
最近こんなのが出て頻繁に落ちるようになっちゃった。メモリ不足なのかな・・・。
090217 9:29:42 - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.
key_buffer_size=402653184
read_buffer_size=2097152
max_used_connections=18
max_threads=151
threads_connected=12
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013224 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
うーん。
517 = :
チュの字ってなんか笑える
518 = :
俺はお前にホの字だこのやろう
519 = :
こりゃあ御の字だ
532 = :
>>531
小泉じゃねーかYO!中川じゃねーんかYO!
533 = :
>>522
INSERT INTO (・・・) SELECT ・・・
が使えるんじゃ?
つかオートインクリメントの数字そのものは気にするものじゃないよ。
どうしてもというのなら、自分でストアド書いたほうがマシかもね。
535 = :
要は次のものを取得したいという事で良いのかな?
・あるcategory idを持つ記事全てに対して付けられたcomment数の合計
・あるcategory idを持つ記事のbodyとtitle全て
だとすれば、これはクエリをcomment数を求めるクエリとbodyとtitleを
求めるクエリの2つに分けるのが、その後のアプリの実装も含めて結果的
には一番楽だと思う。
select
COUNT(*) AS NUMCOMMENT,
CA.CATEGORY_NAME AS CATEGORY_NAME
from TOPIC T, CATEGORY CA, COMMENT CM
where
T.CATEGORY_ID = CA.CATEGORY_ID AND
T.TOPIC_ID = CM.TOPIC_ID and
T.CATEGORY_ID = ???
group by CATEGORY_NAME
select
T.BODY AS BODY, T.TITLE AS TITLE,
CA.CATEGORY_NAME AS CATEGORY_NAME
from TOPIC T, CATEGORY CA
where
T.CATEGORY_ID = CA.CATEGORY_ID and
T.CATEGORY_ID = ???
537 = :
結局ソートで一回、結合で一回インデックスを読みに行くことで
実現されるから、大事なところにインデックス貼っておけばそうは
変わらないと思う。
あとはAとBのレコード数と、制約条件などの有無でも変わってくる
はずなので、具体的にはデータ依存としか言いようがない。
あとLEFT JOINを使っているけど、NULLを含む列をORDER BYに
使ったとき並び順は実装依存なので。明確に外部結合が必要で
無い限り内部結合を使った方が無難です。
538 = :
ストアドプロシージャの初歩的な書き方について質問です。
プロシージャ内でテーブル名を変数に入れてクエリするにはどうしたらよろしいでしょうか?
具体的には
-----------------------------------------------------------------------
delimiter //
CREATE PROCEDURE table_count (OUT count INT , IN table_name text )
BEGIN
SELECT COUNT(*) INTO count FROM table_name;
END;
//
delimiter ;
-----------------------------------------------------------------------
のようなことをしたいのですが、table_nameを変数として展開せずにtable_nameというテーブルを探しにいってしまいます。
どう書いたらよろしいのでしょうか?
よろしくお願いします。
540 = :
自己解決スマソ
更にサブクエリとすれば良かっただけでした
541 = :
質問です
複数のカラムを1つのカラムに見立てて
ユニーク制約をかけることって出来ないのかな?
複数カラムの全レコードを通して一意の値を持たせたいんだけど。
動作的には空テーブルに
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 1 , 2 , 3 );
が成功したとき、
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 3 , 1 , 2 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 4 , 5 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 5 , 3 ); も
失敗するような感じになって欲しい。
成功するのは
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 5 , 6 );
のように、c1,c2,c3とおして全く使用されていない値だけで
組み合わされた時だけにしたい。
UNIQUE (c1,c2,c3)みたいな表制約だと、c1,c2,c3の組み合わせの値が
同一のときだけしか制約されないので、これじゃないと言う事だけは
判ったんだけど。
やっぱりプログラム側で事前に重複チェックするしかないのかな?
542 = :
昇天してしまったマシンからデータベースのバックアップを取りたいと
思っています。(マザーボードが死んだ)ディスクは生きているのですが、
適当なマシンにディスクをマウントしてバックアップをとる場合、mysqldumpを
使ってバックアップなどできるのでしょうか?os bootcdからrescueモードで
できればと考えています。OSはCentOS5です。
よろしくお願いします。
544 = :
>>541
それどんなシステムなの?
545 = :
一件づつにユニークなナンバリングがされたアイテムを3つ用意して
それを登録してもらうんだけど、間違って同じ番号を複数入力されると
既に出来ている参照系に大きな影響が出てしまって
困るので、こういう風にしたいなぁと。
本当なら正規化してテーブル分けて云々するのがスジなのも
わかっているんだけど、よんどころない事情でそれも出来ないんだ
546 = :
>>541
トリガぐらいしか思い浮かばないな、俺の頭じゃ
該当テーブルの BEFORE INSERT/UPDATE/DELETE で
CREATE TABLE selected (識別子 型 UNIQUE); なテーブルにも反映させる
547 = :
c1, c2, c3 に入れる値を
任意の自然数nの代わりに
2の(n-1)乗になる数字を入れる
つまり
>>541 を
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 1 , 2 , 4 );
が成功したとき、
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 1 , 2 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 8 , 8 , 16 ); も
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 16 , 32 , 4 ); も
失敗するような感じになって欲しい。
成功するのは
INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 16 , 32 , 64 );
・・・
と置き換える
549 = :
time型はそのためにある
550 = :
>>549
開始時刻 | 終了時刻 | 経過時間
16:33:00 | 16:23:00 | 00:10:00
10:40:00 | 10:31:00 | 00:09:00
12:33:00 | 09:21:00 | 03:12:00
13:15:00 | 11:14:00 | 02:01:00
13:19:00 | 10:41:00 | 02:38:00
経過時間は,timediff関数を使って求められたのですが,
経過時間の合計や平均の出し方が分からないんです。
みんなの評価 : ☆
類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- MySQL 総合 Part25 (947) - [94%] - 2017/6/18 6:30
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part17 (1001) - [94%] - 2010/6/10 20:47 ○
- MySQL 総合 Part18 (986) - [94%] - 2011/1/17 15:46
- 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 vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について