質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

2回答

821閲覧

ある資料を基に学びながらPHP MySQLを設計しています。

international

総合スコア16

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

1グッド

0クリップ

投稿2022/11/15 19:53

編集2022/11/16 17:32

ある資料を基に学びながらPHP MySQLを設計しています。
質問があります。イメージ説明
添付画像 を基に自分なりに オリジナル版 を作成中です。
資料には 個人情報である、email があります。
それで、会員登録 後に email でログインする という項目があるのですが
以下がその画面の内容です。

ログインする
メールアドレスとパスワードを記入してログインしてください。

入会手続きがまだの方はこちらからどうぞ。

»入会手続きをする

メールアドレス
sos@sos.com
パスワード
••••••••
ログイン情報の記録
次回からは自動的にログインする
ログインする

(C) H2O Space. MYCOM

以上を以下に変更しようと思います。

ログインする
メールアドレスとパスワードを記入してログインしてください。

入会手続きがまだの方はこちらからどうぞ。

»入会手続きをする

ニックネーム
SOS
パスワード
••••••••
ログイン情報の記録
次回からは自動的にログインする
ログインする

(C) H2O Space. MYCOM

以上ですが
この場合コマンドプロンプトのコマンドですが
よくわからなくて以下としました。

CREATE TABLE `members2` ( int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) NOT NULL PRIMARY KEY, `password` varchar(100) NOT NULL, `picture` varchar(255) NOT NULL, `created` datetime NOT NULL, `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; 追伸です。 以上ですが 実行したところが! ERROR 1068 (42000): Multiple primary key defined エラー 1068 (42000): 複数の主キーが定義されています。 となり、現在検討中です。

ちなみに以上を変更こする前の元の資料は以下です。
変更箇所は → で説明しています。

CREATE TABLE `members` ( →members2に変更 `id` int(11) NOT NULL AUTO_INCREMENT,→PRIMARY KEYを追加しました。 `name` varchar(255) NOT NULL, → ※❶PRIMARY KEYを追加しました。 `email` varchar(255) NOT NULL, → emailを削除しました。 `password` varchar(100) NOT NULL, `picture` varchar(255) NOT NULL, `created` datetime NOT NULL, `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

 以上の
※❶PRIMARY KEYを追加しました。
ですが、name(ニックネーム)を ID の代わりにするので
name varchar(255) NOT NULL PRIMARY KEY,とし
PRIMARY KEYを追加したのはユニーク となり ニックネーム
の重なり防止のために 私が 勝手に追加しました。
これは、正解でしょうか?

以上ですが 初めての開発なのでよくわかりません?
他何かございましたら教えていただけないでしょうか?
よろしくお願いいたします。

international👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/11/16 02:04 編集

オリジナルを作るのは質問しなくてもこの程度自己解決できるようになってから。その「資料」とやらも理解できてないですよね。 ただ、複数アカウント利用のままはやめてください。規約違反です。ルールを守れない人がルールを作って運用するのは無茶です。 ちなみに幾度となく本人には指摘し、対応を依頼しておりますが全て無視するこの質問者は以下のアカウントの所持者です。皆さん騙されないよう。(運営にも対応依頼しましたが「調査中」でタスク止まってる) https://teratail.com/users/1981225
AbeTakashi

2022/11/16 01:26

まずはそれで試してみたらどうでしょう? 間違えてエラーが出てもパソコンが壊れるとかありませんよ。エラーメッセージを見て学べることがたくさんあります。ここで都度都度聞いていたら学習がぜんぜん捗りません。自分で手を動かして確かめることが早くて答えもすぐに分かります。
international

2022/11/16 17:45

ありがたいご回答を下さいましたありがとうございました。 助かります。 勉強しながら開発中です。 今後ともよろしくお願いいたします。
guest

回答2

0

ベストアンサー

SQL

1`name` varchar(255) NOT NULL PRIMARY KEY, 2↓↓↓ 3`name` varchar(255) NOT NULL UNIQUE,

投稿2022/11/16 01:39

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

international

2022/11/16 17:48

ありがとうございました。 大変勉強になります。 助かります。
international

2022/11/16 18:19

UNIQUE ※一意の例を作る  表を作成するときに、列内の値に重複がないように指定することもできます。  この指定はUNIQUEキーワードを指定します。UNIQUEを指定すると、データ  の挿入、データの更新などで、その列に重複するデータを入れよとするとエラ  -となります。UNIQUEを指定する書式は次のようになります。 CREATE TABLE<表名>( <列名1><データ型>[NOT NULL][UNIQUE]. <列名2><データ型>[NOT NULL][UNIQUE]. <列名3><データ型>[NOT NULL][UNIQUE]. ・・・ );
yambejp

2022/11/17 00:17

単純に主キー(primary key)は2つのカラムに別々に指定ができないというだけの話ですね 複合インデックスという仕組みはありますが、それはAカラムとBカラムの組み合わせが ユニークという仕組みですのでAカラム内およびBカラム内はむしろユニークではなくなってしまいます
guest

0

Function

1f: EMAIL → NAME 2f(email) = name

投稿2022/11/15 20:04

atcoderyellow

総合スコア481

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

international

2022/11/16 17:49

ありがとうございます。 大変助かります。  変更します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問