元スレMySQL 総合 Part13
mysql覧 / PC版 /みんなの評価 : ☆
402 = :
\ │ /
/ ̄\
─( ゚ ∀ ゚ )─
\_/
/ │ \
○○○ ○○○
○,,・ω・○ ○・ω・,,○
○○○ ○○○ o
o~(,_uuノ とuu_,)ノ
FREE TIBET
405 = :
>>400
データベースの初期化からやり直したらどう?
mysql_install_db --user=mysql
406 = :
mysqlhotcopy でデータベースコピーしたあと
mysqldの再起動以外でデータベース読み込ませる方法ないでしょうか。
常時起動させているものなので極力再起動は避けたいです。
408 = :
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 'group
varchar(40),
こんなエラーメッセージが出ましたが、どういうことですか?
410 = :
reate table entry(
mail varchar(15),
domain varchar(15),
is_a_group bool,
name varchar(20),
group varchar(40),
post varchar(20),
prefecture varchar(8),
station varchar(20),
adress varchar(40),
tel1 int(4),
tel2 int(4),
tel3 int(4),
birthday date,
industry varchar(40),
type varchar(40),
job varchar(20),
user varchar(20),
agree bool
);
411 = :
reate table entry(
'mail' varchar(15),
'domain' varchar(15),
'is_a_group' bool,
'name' varchar(20),
'group' varchar(40),
'post' varchar(20),
'prefecture' varchar(8),
'station' varchar(20),
'adress' varchar(40),
'tel1' int(4),
'tel2' int(4),
'tel3' int(4),
'birthday' date,
'industry' varchar(40),
'type' varchar(40),
'job' varchar(20),
'user' varchar(20),
'agree' bool
);
412 = :
ありがとうございます。
413 :
ファイルをキャッシュするのにmysqlを使おうと思います
ファイルパスをキーにしてインデックスを張ることになるかと思いますが
そうなると255文字程度の長さは必要になります
そんな長いインデックスは実用的なのでしょうか?
414 = :
そんなときは、数値でID付けてそのIDを結合したものにインデックス張るといいよ。
415 = :
>>405
ありがとうございます。
「MySQL入門以前」という本を見ながらやっているのですが、
「データベースの初期化」というのは書いておらず、まだ一度もやっていません。
もうすこしよく勉強して、はじめからやり直してみようと思います。
ありがとうございました。
417 :
ファイルパスにmd5使うって超いいじゃん
バッティングすることなんて天文学的確率だろ
キャッシュ用途としては充分じゃね?
418 = :
Winnyがそうだから
419 = :
レコードの電話番号フィールドに「012-3456-7890」のような文字列が入ってるとして、
「01234567890」でもselect文で検索できるような方法はありますか?
concatのようなselect文中に挿入してレコードの文字列を置き換え(削除)つつ検索できたら
とても幸せなのですが、何かありますでしょうか?
420 = :
>>419
お幸せに・・
select * from hoge where REPLACE(tel,"-", "")="01234567890"
421 = :
>>419
フィールドが半角のみ確実なら正規表現 REGEXP 使えるよ
424 = :
質問です。
データベース名にアンダーバーを入れるとなぜかたまにエラーになります。
たとえば「user_address」と言うデータベースを作るとなぜかエラーになる。
前後を区切りたいときは普通アンダーバーで区切ると思っていたのですがたまにエラーになるのでやめます。
普通はどの文字で区切るのかわかりません。
というかアンダーバー以外で区切る方法他にいい案ありますか?
426 = :
>>424
なんでエラーなるの?エラーの内容は?
427 = :
>>426
エラーというかデータベースが作れなかった。
何度やっても作れなかったがアンダーバー外したら作れた。
428 = :
>>427
それは、mysqlというよりかはOSのファイルシステムの問題じゃね。
429 = :
>>428
まあそういうことになります。
どこで聞くべきかわからなかったので
とりあえずmysqlでエラーがでたのでここで聞いてみました。
失礼しました。
430 = :
質問です。
CREATE TABLE でPARTITION(TABLESPACEとか)を指定しなかったら
テーブルデータはどこに格納されるのでしょうか?
432 = :
>>431
having
434 = :
>>430
ん?何が知りたい?データディレクトリ?
436 = :
seqtable
---------------------------
id seq notes
a 1 ほげ1
a 2 ほげ2
a 3 ほげ3
b 1 ふが1
b 2 ふが2
b 3 ふが3
....
b 100 ふが100
---------------------------
IDごとにseqが振られているテーブルなんですが、
delete table seqtable WHERE id='b' and (seq=77||seq=97);
したあとに
ID:bの連番の欠番を低い順から抜き出すことはできますでしょうか?
(欠番がない場合は最大値+1を返してくれるようにしたいです。)
最大値は以下で取れるので
SELECT (MAX(seq)+1) As max FROM seqtable WHERE id='b';
>ID:bの連番の欠番を低い順
をお願いします。
437 :
>>436
http://codezine.jp/a/article/aid/1420.aspx?p=2
とか
http://codezine.jp/a/article/aid/1076.aspx
とかかな。
438 = :
>437さん
ありがとうございます!
上のものでやりたいことは完璧にできました
439 = :
>>435
テーブルの定義見せて。
442 = :
>>434
データベースのデータがOS上のどこに
保管されているのか知りたいです。
例えば、Oracleの場合、tablespaceの
容量を超えてデータを入れようとすると
エラーになります。(自動拡張OFFで)
その場合は、tablespaceに対して
物理的なデータファイルを追加して
領域拡張してやるのですが、
MySQLの場合は、あちこち調べても
その部分の説明がほとんどされて
おらず、不思議に思っています。
DISKの領域がゆるす限りいくらでもデータを登録できるのか?
そうだとしてもDISK上のどのパーティション(Windowsなら
どのドライブ)に存在するのか知っていないと最大のデータ
格納量も予測できず、不安ではないかと思うのですが。
443 = :
>>442
どこに置かれるかはここに書いてるよ。
http://dev.mysql.com/doc/refman/5.1/ja/installation-layouts.html
「データベース」って書かれてるとこね。
んで、実際のファイルは使っているストレージエンジンによります。
http://dev.mysql.com/doc/refman/5.1/ja/storage-engines.html
普通はMyISAMかInnoDBなので、該当の部分を読んでください。
444 = :
>>442
つ http://dev.mysql.com/doc/refman/5.1/ja/storage-engines.html
ここらへんをよく読もう。
各table typeによって格納される場所は異なる。
445 = :
かぶった・・・orz
446 = :
>>442
っていうか、show variables like 'datadir';
447 = :
下記のようなSQLを書いた場合、
何故か id が 0 のものが抽出されてしまいます。
なぜでしょうか?
また、回避法はありますでしょうか?
※検索に利用する為、0と検索された場合はidが0のものが抽出されるようにしたいので
AND id <> 0
は使わないでやりたいです。
SELECT * FROM users WHERE id = 'うんこ'
448 = :
ありがとうございます。
ある意味オラクルよりややこしいですね。
449 = :
>>447
usersのCREATE TABLEみせて
450 = :
>>449
こちらになります。
create table users (
index int(11) not null auto_increment,
id int(11) default '0' not null ,
pw varchar(40) not null ,
PRIMARY KEY (index)
);
みんなの評価 : ☆
類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- 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 総合 Part18 (986) - [94%] - 2011/1/17 15:46
- MySQL 総合 Part19 (982) - [94%] - 2011/6/9 2:33
- MySQL 総合 Part23 (992) - [94%] - 2013/8/11 17:00
- 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 総合 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 ○
トップメニューへ / →のくす牧場書庫について