X



トップページDB@2ch掲示板
1002コメント319KB
SQL質疑応答スレ 18問目
■ このスレッドは過去ログ倉庫に格納されています
0001NAME IS NULL
垢版 |
2018/01/04(木) 22:12:22.14ID:???
このスレは
「こういうことをやりたいんだけどSQLでどう書くの?」
「こういうSQLを書いたんだけどうまく動きません><」
などの質問を受け付けるスレです。

SQLという言語はISOによって標準化されていますが
この標準を100%実装したDBMSは存在せず、
また、DBMSによっては標準でない独自の構文が
追加されていることもあります。

質問するときはDBMS名を必ず付記してください。

【質問テンプレ】
・DBMS名とバージョン
・テーブルデータ
・欲しい結果
・説明

前スレ:
SQL質疑応答スレ 17問目
https://mevius.5ch.net/test/read.cgi/db/1468157341/
0652NAME IS NULL
垢版 |
2018/12/04(火) 10:41:43.68ID:???
>>649>>650>>651
お三方、ありがとうございました。
ばたばたしてて遅くなりましたが、確認できました。
0654NAME IS NULL
垢版 |
2018/12/04(火) 11:59:27.62ID:KJK6oDpE
大丈夫。ただ+が使えるのはMS系だな。
後は使えるやり方に読み換えて
0655NAME IS NULL
垢版 |
2018/12/09(日) 16:50:28.29ID:???
SQL SERVERのSQL文について質問です

【条件】
1.全てのテーブル内容を取得
2.@ABのM_CODEとS_CODE、CのM_CODEとS_CODEが一致したNAMEを取得

一つのSQL文で完結できると助かります
以上の内容でご教示お願いします


@Table1
ID | M_CODE | S_CODE | 内容
--+----------+-----
01 | 1 | 1 | a
02 | 1 | 2 | aa
03 | 1 | 3 | aaa
04 | 1 | 2 | aaaa

ATable2
ID | M_CODE | S_CODE | 内容
--+----------+-----
01 | 2 | 1 | ab
02 | 2 | 2 | abb
03 | 2 | 3 | abbb
04 | 2 | 2 | abbbb

BTable1
ID | M_CODE | S_CODE | 内容
--+----------+-----
01 | 3 | 1 | ac
02 | 3 | 2 | acc
03 | 3 | 3 | accc
04 | 3 | 2 | acccc

CCode
M_CODE | S_CODE | NAME
--+----------+-----
1 | 1 | サッカー
1 | 2 | 野球
1 | 3 | バスケット
2 | 1 | バナナ
2 | 2 | リンゴ
2 | 3 | オレンジ
3 | 1 | サバ
3 | 2 | カツオ
3 | 3 | マグロ
0656NAME IS NULL
垢版 |
2018/12/09(日) 18:37:50.56ID:???
1,2,3をuionして4とjoinすればいいんだろうけど,何んでこんな設計?
0657NAME IS NULL
垢版 |
2018/12/09(日) 18:58:36.79ID:???
欲しい結果がよくわからん

4に1〜3をJOINするだけじゃダメなのか?
0658NAME IS NULL
垢版 |
2018/12/11(火) 21:37:14.11ID:???
この板誰も人いないけど、他にデータベースの話題扱う場所あるの?
0659NAME IS NULL
垢版 |
2018/12/12(水) 07:07:27.08ID:???
ここはSQLの板だから
DBは別にあるだろ
0660NAME IS NULL
垢版 |
2018/12/14(金) 13:53:33.51ID:???
スレはSQLだが、ここはデータベース板
0661NAME IS NULL
垢版 |
2018/12/17(月) 17:59:53.76ID:???
Oracle 12cでのSQLに関する質問です。

2つのDATE型のカラムの差をhh:mm:ssで出力したいです。


開始日が2018/12/13 7:00:00
終了日が2018/12/17 17:30:30
だとして、この2つの差(経過時間)の出力結果は
106:30:30
と出したいのですが、出来るだけ簡単に計算して出す方法ありますでしょうか?
(時・分・秒でそれぞれ分解して掛け算して計算する方法がネット上にありましたが、もう少しシンプルにできないか模索しています。)
良い御知恵がありましたらご教示お願い致します。
0662NAME IS NULL
垢版 |
2018/12/17(月) 18:56:46.00ID:???
質問です。
製品のメジャーバージョン、マイナーバージョンという2列があり、
メジャーバージョンが最大の中から、
マイナーバージョンも最大の行を取り出すにはどうしたらいいでしょうか?

postgresql9です。
0663NAME IS NULL
垢版 |
2018/12/17(月) 19:37:22.24ID:???
>>662
postgresql9手元で動かせません。MariaDBです
テーブル名はproductと仮定しました

select * from product
where (major_ver,minor_ver) in (
select major_ver,max(minor_ver)
from (
select major_ver,minor_ver
from product
where major_ver = (select max(major_ver) from product )
) as t
);
0664NAME IS NULL
垢版 |
2018/12/18(火) 00:22:00.75ID:???
>>663
なるほど。メジャーの最大グループからマイナーの最大を取った where in句ですか
ありがとうございます。
0665NAME IS NULL
垢版 |
2018/12/18(火) 01:53:40.53ID:???
window関数使うともっと綺麗に書ける気がする

俺はwindow関数苦手だから書けないが
0666NAME IS NULL
垢版 |
2018/12/18(火) 23:18:20.88ID:d1jtTCeB
>>661
あんたはDATE型が文字列だとでも思っているのか?
0667NAME IS NULL
垢版 |
2018/12/27(木) 14:42:38.04ID:???
a. 顧客テーブル(顧客コード, 顧客名)
b. 商品テーブル(商品コード, 商品名)
c. 売上テーブル(売上日, 顧客コード, 商品コード, 売上数)

売上日, 顧客名, 商品名, 売上数

このように結果が表示されるSQL文を教えてください
0668NAME IS NULL
垢版 |
2018/12/27(木) 15:25:29.94ID:???
何か基本のキって感じ
これが書けないとヤバいと思う
0669NAME IS NULL
垢版 |
2018/12/27(木) 15:29:31.60ID:???
こういうのって内部と外部とどっちで繋ぐのがよろしいの?
それとも、JOINではなくWHERE内でキーを繋いであげればいいの??
0671NAME IS NULL
垢版 |
2018/12/27(木) 19:28:59.29ID:???
まだ書かれていない要求仕様があるんじゃない?
読み取れる範囲だとどっちでも良いように思う
0672NAME IS NULL
垢版 |
2018/12/28(金) 01:38:09.32ID:???
>>667
select 売上日, 顧客名, 商品名, 売上数
from 売上テーブル
inner join 顧客テーブル on 顧客テーブル.顧客コード=売上テーブル.顧客コード
inner join 商品テーブル on 商品テーブル.商品コード=売上テーブル.商品コード

>>669
FROMに複数テーブル書いてwhereに結合条件書くのは今は推奨されない
内部か外部かは、商品テーブルにない商品売ってたり顧客テーブルにない顧客に売ってたりしない限りどちらでも同じ結果
どっちでもいいなら普通は内部結合にするんじゃね
0673NAME IS NULL
垢版 |
2018/12/28(金) 08:19:26.48ID:???
>>672
ありがとうございます
メモしておきます
0674NAME IS NULL
垢版 |
2018/12/28(金) 16:26:23.93ID:???
外部キーがあればinnerなければleft joinかな
0675NAME IS NULL
垢版 |
2018/12/28(金) 22:03:16.91ID:???
このなかで一番美人なのって真ん中だよね?深キョンレベルだと思うのだが
ちなみに向かって右は目も鼻も整形してるって本人が公言してるけどそれ抜きにして誰が一番美人だと思う?
http://bigsta.net/media/1933567086757747003_3564907098
0677NAME IS NULL
垢版 |
2018/12/29(土) 10:58:20.71ID:???
>>672
そうなのか、勉強になったわー。
講習受けたときはJOINで教わったのに、実際にWHEREで書かれたの使ってる人たちがいて何でだろうと不思議だったんだけど、
歴史的な表記ぶれみたいなもんなんだな。
商品登録がない商品を売ってる可能性とかも全然思いつかなかった。
0678NAME IS NULL
垢版 |
2018/12/29(土) 11:00:50.31ID:???
>>674
外部キー無いけど繋ぐって、どんなシチュエーション??
0679NAME IS NULL
垢版 |
2018/12/29(土) 19:17:07.38ID:/5Z8+3Hw
>>677
結合条件をFROM句にしたのは標準SQL。ただ構文が長ったらしいのは失敗だった。
0680NAME IS NULL
垢版 |
2018/12/29(土) 19:20:03.23ID:/5Z8+3Hw
>>672
推奨されない?

そんな嘘を書くな。

製品によって結合条件の構文の一部が非推奨になっただけ。
0681NAME IS NULL
垢版 |
2018/12/29(土) 19:21:06.30ID:/5Z8+3Hw
>>677
上の世代からするとなんでFROM句に書きたがるのか疑問なんだよ。
0682NAME IS NULL
垢版 |
2018/12/30(日) 09:09:04.13ID:???
どのテーブルにも脳死したかのように
createdとupdatedっていうtimestampなカラムがあるんですが普通なんですか?

都道府県テーブル
id 県名  作成日 更新日
1 北海道 2018略 2018略
2 岩手県 2018略 2018略

こんな具合に定数のような項目にもあります
0683NAME IS NULL
垢版 |
2018/12/30(日) 10:10:04.61ID:???
>>681
結合の条件なのか検索の条件なのかが分かりやすいからだろ
0684NAME IS NULL
垢版 |
2018/12/30(日) 10:21:46.45ID:???
Whereに結合条件書くと順番が制御できないから外部結合で結果が不定になることがあるってのがあったな
0685NAME IS NULL
垢版 |
2018/12/30(日) 10:43:00.11ID:???
>>682
テーブル設計の基本ルールとして定めていることは特に珍しくはないと思う
本当に必要か?という議論をすることは可能だが
どっちに転んでも誰も得をしないので誰も言い出さない
0686NAME IS NULL
垢版 |
2018/12/30(日) 11:02:25.62ID:BcIhhlay
>>682
マスタこそあった方がええで
0687NAME IS NULL
垢版 |
2018/12/30(日) 11:30:39.57ID:???
普通かどうかよりも、テーブル設計書を見た方が良いかと
0689NAME IS NULL
垢版 |
2019/01/04(金) 14:56:54.45ID:/aoZaVbi
>>683
それを言い出すとWHERE句が不要になる。絞り込み条件もFROM句に書けるし、若い人間で知識がないとひとつのテーブルでレコードを絞り込んで結合させた方がいいなどと言い出して、全部FROM句に行ってしまう。
0690NAME IS NULL
垢版 |
2019/01/04(金) 14:57:46.66ID:/aoZaVbi
>>684
根本的にSQLをわかっていない。SQLの書き方で処理が決まるわけではない。
0691NAME IS NULL
垢版 |
2019/01/04(金) 15:01:34.82ID:/aoZaVbi
>>682
自分がシステムのテスト、運用・保守をしていたらわかるよ。複数人でテストをし始めたら、誰がいつ作ったのか、誰がいつ更新したのかわからなくなり、チーム作業が成立しない。
0692NAME IS NULL
垢版 |
2019/01/04(金) 15:15:54.95ID:???
>>690
>SQLの書き方で処理が決まるわけではない
から、そのときの実行計画次第で結果か変わるって話だけど?
意味わかってレスしてる?
0693NAME IS NULL
垢版 |
2019/01/04(金) 16:00:36.58ID:???
where句に結合条件を書こうとすると外部結合のとき困るよな
Oracleは(+)を使ってwhere句で外部結合が今でもできるけど推奨してない
SQL Serverでも似たような演算子が昔あったけどもうサポートされてない
0694NAME IS NULL
垢版 |
2019/01/04(金) 16:24:03.25ID:???
from句は、集合を作る処理で、where句とselect句で選択範囲を決定しているんだろ?
0695NAME IS NULL
垢版 |
2019/01/04(金) 16:47:25.40ID:/aoZaVbi
>>692
製品は人間の感覚を意識して実装されているが、SQLの仕様ではない。
0696NAME IS NULL
垢版 |
2019/01/04(金) 16:52:31.34ID:???
>>694
RDBの教科書的に言えば直積(from)→選択(where)→射影(select)だな。
0697NAME IS NULL
垢版 |
2019/01/04(金) 19:11:32.12ID:???
>>695
SQLの仕様的に不定な結果を除去できないから推奨しないって話をしてたんだけど

製品ってなに?SQLが人間の感覚を意識して実装されてるって?
3値論理とか、不定な結果とかが感覚的なのかよ。常人とは違う感覚もってるらしいな
0698NAME IS NULL
垢版 |
2019/01/05(土) 00:09:10.98ID:apNAc+7p
言うことはわかるが、具体的にどの製品のデフォルト設定を想定しているのか?

外部結合の構文は、どの製品も標準SQLの構文にも対応するが、個々の製品の独自拡張もまた進んでいる。

あなたの言うことで気になるのが、実行計画によって結果がかわるという点で、そんなポンコツ製品は使わない方がいい。
0699NAME IS NULL
垢版 |
2019/01/05(土) 00:13:44.83ID:???
議論するときはID表示にするかトリップ付けてくれよ
誰が何を言っているか追いかけられない
0700NAME IS NULL
垢版 |
2019/01/05(土) 05:00:54.33ID:???
>>698
製品がポンコツなんじゃなくて、SQLのあいまいさの問題
まあ俺もかなり信じられなかったからな
実例もどっかで見たんだが見当たらん

AとBを外部結合したものにCを外部結合するのと、
BとCを外部結合したものにAを外部結合するのとでは結果が変わる
whereでの外部結合ではこの違いを表現できん、てな話だったはず

from A,B,Cと書くと、感覚的には前者で処理されると思い込むが
事項計画次第で後者で処理されることもあり得るって話だったはず
0701NAME IS NULL
垢版 |
2019/01/05(土) 08:11:08.17ID:???
>>700
OUTER JOINが導入される前の外部結合は製品毎の独自拡張なんだから
そこにあいまいさがあるならその製品の問題になるでしょ。
それともOUTER JOINにまだ曖昧さが残っているということ?
0702NAME IS NULL
垢版 |
2019/01/05(土) 20:01:36.96ID:???
>>701
だからwhereでの結合は推奨しないって話じゃないのか
0703NAME IS NULL
垢版 |
2019/01/05(土) 20:54:38.32ID:???
「だから」ってのはどこに係ってるの?
>>684が言っているように結果が不定になるというのはどの製品のことかって話なんだけど。
0704NAME IS NULL
垢版 |
2019/01/06(日) 11:15:47.69ID:LccedoWX
>>700
外部結合の条件が書かれていない。結合条件が異なるから結果が変わるのを実行計画の違いだと思っているのか?
0705NAME IS NULL
垢版 |
2019/01/06(日) 15:33:10.43ID:???
>>703
たしかオラクルだったはず
今探しても見当たらん。結構トリッキーなSQLではあった気がするんだが
原理的にwhereで外部結合すればどのDBMSでも起こり得るはずで特定製品の話ではないんだが

>>704
まったく同じSQLで結果が変わる事があるから不定って言うんだけど

まあ俺はwhereで結合する事はそれ以来やめたからもうどうでもいいや
実例だせない時点で説得力低そうだしな
0706NAME IS NULL
垢版 |
2019/01/06(日) 16:02:53.03ID:???
Oracleなら、解釈があいまいになりそうな記述は最初から弾かれたと思うが。

>原理的にwhereで外部結合すればどのDBMSでも起こり得るはずで特定製品の話ではないんだが

原理的もなにも、SQL標準のfromとwhereだけではそもそも外部結合を表現することはできないんで
各製品が独自に拡張していたわけ。そこに問題があるなら当然その製品の問題。
ってのは上で何度も指摘されているんだが。
0707NAME IS NULL
垢版 |
2019/01/10(木) 02:55:12.86ID:OduNBQgg
ヒカキンの年収が10億超え!?明石家さんま・坂上忍も驚愕の総資産とは??
https://logtube.jp/variety/28439
【衝撃】ヒカキンの年収・月収を暴露!広告収入が15億円超え!?
https://nicotubers.com/yutuber/hikakin-nensyu-gessyu/
HIKAKIN(ヒカキン)の年収が14億円!?トップYouTuberになるまでの道のりは?
https://youtuberhyouron.com/hikakinnensyu/
ヒカキンの月収は1億円!読唇術でダウンタウンなうの坂上忍を検証!
https://mitarashi-highland.com/blog/fun/hikakin
なぜか観てしまう!!サバイバル系youtuberまとめ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
世界で最も稼ぐユーチューバー、2連覇の首位は年収17億円
https://forbesjapan.com/articles/detail/14474
0708NAME IS NULL
垢版 |
2019/01/19(土) 18:04:53.48ID:???
>>33
これって標準SQLだとどうなる?
0709NAME IS NULL
垢版 |
2019/01/19(土) 19:14:46.35ID:???
>>708
>>35で[KEY]を"KEY"にすれば標準SQLになると思う
IDが予約語のDBもあると思うが標準では予約語じゃない
0711NAME IS NULL
垢版 |
2019/01/19(土) 19:44:11.08ID:???
row_number()使わないでやってみた

SELECT "TableA".*,"TableB"."ID2","TableB"."DATA" FROM "TableA"
LEFT JOIN (
SELECT "ID",MAX("KEY") AS "KEY" FROM "TableB" WHERE "KEY"<=2 GROUP BY "ID"
) AS a ON "a"."ID"="TableA"."ID"
LEFT JOIN "TableB" ON "TableB"."ID"="a"."ID" AND "TableB"."KEY"="a"."KEY"
ORDER BY "TableA"."ID"
0713NAME IS NULL
垢版 |
2019/01/19(土) 23:58:53.77ID:???
>>711
検証してみたんですが、
TableBに(8,2,3,'b_key3')を追加し、検索KEY=3にした時、
一番若いKEY=1を持って来れてません
0714NAME IS NULL
垢版 |
2019/01/20(日) 02:34:11.35ID:???

2より若いじゃ無くて2が無ければ一番若いKEYなのかな
KEY=3,4,5の場合3になる?
0715NAME IS NULL
垢版 |
2019/01/20(日) 02:37:14.35ID:???
なんかSQL貼り付けようとすると書き込みに失敗する
何故だ
0717NAME IS NULL
垢版 |
2019/01/20(日) 08:31:23.78ID:???
>>33みたいに場合分けを含むようなのは素直にunion allでやる方が見通しが良かったりする。
記述は冗長かもだけど。
0718NAME IS NULL
垢版 |
2019/01/23(水) 06:30:51.69ID:???
>>715
SQLインジェクションって知ってる?
0719NAME IS NULL
垢版 |
2019/01/23(水) 08:44:06.11ID:???
>>718
最初、>>716の16行目以降のSELECT文を書き込もうとしたら失敗したのよ
>>711だと書き込み成功してるのに何故だろうか?
どの部分が問題になっているか知ってる?
0720NAME IS NULL
垢版 |
2019/01/24(木) 23:55:34.12ID:???
チェックは途中のクラウドで行っているようです
SQLの特定のキーワードに反応しているみたい
引っかかるときもあれば引っかからないときもある
その辺の基準はよく分からないです
チェックする検査項目が変わるのかもしれない
0721NAME IS NULL
垢版 |
2019/01/25(金) 19:17:24.19ID:???
>>720
ありがとう

書いてみてエラーになったら外部サイトに貼るしかないか
0722NAME IS NULL
垢版 |
2019/01/25(金) 20:20:44.91ID:???
手間だけど、それが一番良いと思う
後は全角文字に置換して貼り付けるくらい
汚くはなるけど、説明と合わせて書きたい時は
こうすると良いかな
0723NAME IS NULL
垢版 |
2019/01/30(水) 21:50:00.13ID:faG5je+8
初めて質問させていただきます
SQLからPostgresへのデータ移行をC#使ってプログラム作ってます
csv吐き出しで移行させたいんですが、ダブル型のカラムのデータが.000や10.600という形で入ってるのですがどうにか0にする・余計な0を無くすことが出来るのでしょうか?
またそういう事が吐き出しの際指定出来るのでしょうか?
吐き出しはbcpでフォーマットを読ませてます
0724NAME IS NULL
垢版 |
2019/01/30(水) 22:08:09.72ID:???
FORMAT()関数とか言うのがあるんじゃねぇの?よく知らんけど
0725NAME IS NULL
垢版 |
2019/01/31(木) 14:53:40.26ID:kxiPGIi/
>>723
SQL ServerのことをSQL

CSVファイルのデータをわざわざC#でインポートプログラムを作ってインポート

エクスポートや出力にあたる言葉が「吐き出し」

初心者なのかクソ経験者なのか?
0726NAME IS NULL
垢版 |
2019/01/31(木) 20:03:35.35ID:???
>>725
自己解決しました
申し訳ない急ぎだったのでそういう書き方になってしまった
C#は移行という一貫性のあるプログラムです
SQL serverからPostgresへの移行と書いてあるように
目的の為の柔軟性もあるという意味合いで情報を付加しただけに過ぎないです
0727NAME IS NULL
垢版 |
2019/01/31(木) 21:14:34.97ID:kxiPGIi/
文字でデータを移行するのに数値型のデータをどう表現するのか指定を行っていない時点で初心者。
0728NAME IS NULL
垢版 |
2019/01/31(木) 21:18:44.70ID:???
>>726
どういう風に解決したのか書いておいて
0729NAME IS NULL
垢版 |
2019/02/01(金) 06:34:24.99ID:???
>>727
吐き出しはbcpでフォーマットを読ませてます
>>728
問題は別にありました
思いっきりbcp時にNULL文字の空白が…と警告が書いてあるのにも関わらずNULLIFでRTRIM関数を使用していないことが原因でした
ちなみに.000は0には出来ませんでしたがコンバートで代用しました
0730NAME IS NULL
垢版 |
2019/02/01(金) 09:44:22.12ID:???
根本的にアプローチ方法が違う様な気がする
山に登るのも好き好きだから
逆立ちして登りたい人もいるだろうし
0732NAME IS NULL
垢版 |
2019/02/01(金) 11:48:19.88ID:???
SQLパズルって本どうなの?実務で役に立つ?
0734NAME IS NULL
垢版 |
2019/02/01(金) 13:43:15.56ID:LPFd6PpO
今度はbcpの使い方を知らなかったということか。何もかもダメだな。
0735NAME IS NULL
垢版 |
2019/02/01(金) 14:28:44.76ID:???
bcpの使い方ってよりbcpの相互関係に気付けなかっただけだろ
0737NAME IS NULL
垢版 |
2019/02/10(日) 12:16:31.44ID:???
auto incrementって指定しなくても勝手に連番いれてくれないの?
0738NAME IS NULL
垢版 |
2019/02/10(日) 12:45:17.83ID:???
多義的質問で回答が難しい
0739NAME IS NULL
垢版 |
2019/02/10(日) 12:47:26.67ID:???
autoincrementのカラムを何も指定しないでinsertしても入らないのですか?
0740NAME IS NULL
垢版 |
2019/02/10(日) 13:20:09.88ID:???
それは無理だろう
作成時に指定した制約の範囲で値は入る
0741NAME IS NULL
垢版 |
2019/02/10(日) 13:42:14.39ID:???
じゃあ空のテーブルに1から連番のidを入れたいときどうしますか?
0742NAME IS NULL
垢版 |
2019/02/10(日) 14:00:53.96ID:???
取得時に連番を振れば良いので、そもそもの要求が正しくないと考えるべきだな
0744NAME IS NULL
垢版 |
2019/02/10(日) 15:01:33.42ID:???
>>742
取得時?自分で連番を入れろってこと?
>>743
postgresqlです
0745NAME IS NULL
垢版 |
2019/02/10(日) 15:05:49.46ID:???
データベースってどういう仕組みなの?一つのテーブルにファイルどれくらい使ってるの?
0747NAME IS NULL
垢版 |
2019/02/10(日) 17:54:40.38ID:RVblbfO4
>>741
必ず連番でないといけないか、まずはそこを考えた方がいい。
0748NAME IS NULL
垢版 |
2019/02/10(日) 18:22:16.70ID:6fMC7oP8
>>744
同時実行時にどうやって連番が振れるのか考えた方がいい。

ユーザーがよく連番にしてくれというが、データそのものが連番を持っている必要はない場合が多い。

シーケンスを使うと歯抜けになるが、歯抜けで何か問題がどうか聞け。

どうしてもやりたければ、番号を管理するテーブルを用意して、一瞬、テーブルをロックして最大値を求めてレコードを追加したり更新したりすることで実現する。

レコードが削除されたときは番号を降り直すのかどうかも事前に聞け。

ユーザーは単に表示されている件数とデータの番号が一致していたら、わかりやすい程度のことしか言っていない。
0750NAME IS NULL
垢版 |
2019/02/10(日) 20:11:17.09ID:???
>>746
これが何なのか読んでもわからんすw
というかORM使ってるのでこの型使えるのだろうか
>>747
>>748
確かに連番である必要は無いです
適当に被らない番号を振ってもらえれば良いんだけどそういう句はあります?
0751NAME IS NULL
垢版 |
2019/02/10(日) 23:07:57.76ID:???
>>750
どういうやり方で最初の空のテーブルを作成してますか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況