sql >> データベース >  >> RDS >> Mysql

このcreatetableステートメントの何が問題になっていますか?

    前の答えは本当です。他にも問題があります(たとえば、DOUBLEをそれほど大きくすることはできません。最大=255)。

    問題があります、男。

    これはおそらく拡張できる簡単な例です。 2つのテーブルがあり、それらの間には多対多の関係があります。結合テーブルには2つの外部キーがあります。 MySQLで動作します-データベースを作成してこれらのテーブルを追加しました。

    use stackoverflow;
    
    create table if not exists stackoverflow.product
    (
        product_id int not null auto_increment,
        name varchar(80) not null,
        primary key(product_id)
    );
    
    create table if not exists stackoverflow.category
    (
        category_id int not null auto_increment,
        name varchar(80) not null,
        primary key(category_id)
    );
    
    create table if not exists stackoverflow.product_category
    (
        product_id int,
        category_id int,
        primary key(product_id, category_id),
        constraint product_id_fkey
            foreign key(product_id) references product(product_id)
            on delete cascade
            on update no action,
        constraint category_id_fkey
            foreign key(category_id) references category(category_id)
            on delete cascade
            on update no action
    );
    
    insert into stackoverflow.product(name) values('teddy bear');
    insert into stackoverflow.category(name) values('toy');
    insert into stackoverflow.product_category
        select p.product_id, c.category_id from product as p, category as c
        where p.name = 'teddy bear' and c.name = 'toy';
    


    1. ManyToMany関係で機能しないカスケード内のエンティティの削除

    2. MySQLリモート接続(レプリケーション)

    3. 演算子は存在しません:uuid =bytea Java with Postgres

    4. 更新のターゲットとデータの個別のソースの両方として2回指定されたテーブル名