Вопросы с тегом «sql»

620
Как создать уникальное ограничение, которое также допускает нулевые значения?

Я хочу иметь уникальное ограничение для столбца, который я собираюсь заполнить GUID. Тем не менее, мои данные содержат нулевые значения для этих столбцов. Как создать ограничение, которое допускает множественные нулевые значения? Вот пример сценария . Рассмотрим эту схему: CREATE TABLE People ( Id...

599
Решения для вставки или обновления на SQL Server

Предположим, что структура таблицы MyTable(KEY, datafield1, datafield2...). Часто я хочу либо обновить существующую запись, либо вставить новую запись, если она не существует. По существу: IF (key exists) run update command ELSE run insert command Какой лучший способ написать...

594
MySQL Error 1093 - Не удается указать целевую таблицу для обновления в предложении FROM

У меня есть таблица story_categoryв моей базе данных с поврежденными записями. Следующий запрос возвращает поврежденные записи: SELECT * FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); Я попытался...

579
PostgreSQL Автоинкремент

Я переключаюсь с MySQL на PostgreSQL и мне было интересно, как я могу делать автоинкрементные значения. В документации PostgreSQL я видел тип данных "serial", но при его использовании я получаю синтаксические ошибки (в...

576
Извлечь строку, которая имеет значение Max для столбца

Таблица: UserId, Value, Date. Я хочу получить UserId, значение для max (Date) для каждого UserId. То есть значение для каждого идентификатора пользователя, который имеет самую последнюю дату. Есть ли способ сделать это просто в SQL? (Желательно Oracle) Обновление: извинения за любую...

563
# 1071 - Указанный ключ был слишком длинным; максимальная длина ключа 767 байт

Когда я выполнил следующую команду: ALTER TABLE `mytable` ADD UNIQUE ( `column1` , `column2` ); Я получил это сообщение об ошибке: #1071 - Specified key was too long; max key length is 767 bytes Информация о столбце 1 и столбце 2: column1 varchar(20) utf8_general_ci column2 varchar(500)...

562
SQL SELECT WHERE поле содержит слова

Мне нужно выбрать, который будет возвращать результаты, как это: SELECT * FROM MyTable WHERE Column1 CONTAINS 'word1 word2 word3' И мне нужны все результаты, т. Е. Сюда входят строки с «word2 word3 word1» или «word1 word3 word2» или любой другой комбинацией из трех. Все слова должны быть в...

561
Как сжать / очистить файл ibdata1 в MySQL

Я использую MySQL в localhost в качестве «инструмента запросов» для выполнения статистики в R, то есть каждый раз, когда я запускаю скрипт R, я создаю новую базу данных (A), создаю новую таблицу (B), импортирую данные в B , отправьте запрос, чтобы получить то, что мне нужно, а затем я опускаю B и...

560
MySQL строка заменить

У меня есть столбец, содержащий URL-адреса (ID, URL): http://www.example.com/articles/updates/43 http://www.example.com/articles/updates/866 http://www.example.com/articles/updates/323 http://www.example.com/articles/updates/seo-url http://www.example.com/articles/updates/4?something=test Я хотел...

559
Пропустить определенные таблицы с mysqldump

Есть ли способ ограничить определенные таблицы из команды mysqldump? Например, я бы использовал следующий синтаксис для вывода дампов только table1 и table2: mysqldump -u username -p database table1 table2 > database.sql Но есть ли аналогичный способ вывести все таблицы, кроме table1 и table2? Я...

551
Можно ли одновременно вставлять несколько строк в базу данных SQLite?

В MySQL вы можете вставить несколько строк, например: INSERT INTO 'tablename' ('column1', 'column2') VALUES ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'); Тем не менее, я получаю сообщение об ошибке, когда я пытаюсь сделать что-то подобное. Можно ли одновременно...

545
Как получить построитель запросов для вывода его необработанного SQL-запроса в виде строки?

Учитывая следующий код: DB::table('users')->get(); Я хочу получить необработанную строку запроса SQL, которую сгенерирует построитель запросов базы данных выше. В этом примере это было бы SELECT * FROM users. Как мне это...