За последние 24 часа нас посетили 38724 программиста и 1742 робота. Сейчас ищут 875 программистов ...

Первичный ключ

Тема в разделе "MySQL", создана пользователем gix, 3 фев 2015.

  1. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Добрый день. У меня в таблице есть id autoincrement, которое по умолчанию перв. ключ. Я же хочу сделать другое поле первичным(которое не autoincrement).Все делаю через phpmyadmin. Мне в запросе выдает ошибку, что только autoincrement может быть первичным. Неужели нельзя сделать поле первичным и которое не autoincrement???
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Если оно не autoincrement зачем его первичным делать? Почитай документацию по первичным ключам.
    И что за задачу ты хочешь решить?
     
  3. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    делать вот зачем-я хочу чтобы при удалении пользователя из таблицы пользователей, удалялся полностью его профиль(тобеш фото, перс. данные из других таблиц). все таблицы должны быть завязаны на логине пользователя. его я буду брать из сессии(так проще всего). Вот, и поэтому автоинкремент тут ну никак, по крайней мере как я себе это представляю. Хотя понимаю что если завязать все таблица на id_user то будет работать. Хотя можно просто и id_user в сессию записать, чтобы каждый раз его не вытаскивать из таблицы
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Если делаешь без id и используешь логин, то просто не указывай логин как первичный ключ, а знай сам что это так и работай с ним.
    Но удобнее всё завязать как ты сказал на user_id.
     
  5. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    ясно, но если подитожить-то может ли быть вообще в теории primary key не auto_incrementом?
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Можно,
    Код (PHP):
    1. CREATE TABLE `test`.`t1` ( `id` INT NOT NULL , `mytext` VARCHAR(255) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB; 
     
  7. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    ну это если в таблице нет автоинкремента получается
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    любой уникальный может