Вставить оператор в таблицу самостоятельного соединения

Согласно решению линейного градиента Гарри (ответил 14 октября 15:15 в 9:55), в нем говорится, что фон непрозрачности невозможен, я пробовал его и да, это не так.

Но! Я нашел обходное решение. Нет, это не супер оптимизировано, но это сработало. Итак, вот мое решение. Поскольку Гарри не использует псевдоэлемент, мы можем достичь этого, создав его.

Установите положение относительно контейнера и создайте псевдоэлемент с теми же свойствами линейного градиента. Другими словами, просто клонируйте его. Затем поставьте прозрачный фон для контейнера и скажем черный фон для клона. Поместите на него абсолютную позицию, z-индекс -1 и значение непрозрачности (т.е. 50%). Он выполнит эту работу. Опять же это обходной путь, и он не идеален, но он работает отлично.

.cut-corner {
    position: relative;
    color: white;
    background-repeat: no-repeat;
    background-image: linear-gradient(white, white), linear-gradient(white, white), linear-gradient(white, white), linear-gradient(white, white), linear-gradient(to bottom left, transparent calc(50% - 1px), white calc(50% - 1px), white calc(50% + 1px), transparent calc(50% + 1px)), linear-gradient(transparent, transparent), linear-gradient(transparent, transparent);
    background-size: 2px 100%, 2px 100%, 100% 2px, 100% 2px, 25px 25px, 100% 100%, 100% 100%;
    background-position: 0% 0%, 100% 25px, -25px 0%, 0px 100%, 100% 0%, -25px 0%, 100% 25px;
}
.cut-corner:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    right: 0;
    top: 0;
    z-index: -1;
    opacity: 0.5;
    background-repeat: no-repeat;
    background-image: linear-gradient(white, white), linear-gradient(white, white), linear-gradient(white, white), linear-gradient(white, white), linear-gradient(to bottom left, transparent calc(50% - 1px), white calc(50% - 1px), white calc(50% + 1px), black calc(50% + 1px)), linear-gradient(black, black), linear-gradient(black, black);
    background-size: 2px 100%, 2px 100%, 100% 2px, 100% 2px, 25px 25px, 100% 100%, 100% 100%;
    background-position: 0% 0%, 100% 25px, -25px 0%, 0px 100%, 100% 0%, -25px 0%, 100% 25px;
}

/* Just for demo */

div {
  padding: 10px;
}
body{
 background-image: radial-gradient(circle, #3F9CBA 0%, #153346 100%);
}
<div class="cut-corner">
  Some content<br>
  Some content<br>
  Some content<br>
  Some content  
</div>

1
задан Mark Rotteveel 16 January 2019 в 18:24
поделиться

1 ответ

В вашем INSERT запросе вы ссылаетесь на foreign key (идентификатор 0), который не существует -> ограничение не выполнено

Я видел в ваших изменениях, прежде чем откатывать его, ваш CREATE TABLE сценарий.

Поле, содержащее ссылку на родителя, было создано следующим образом:

`id_processo_padre` int(11) NOT NULL DEFAULT '1'

Я предлагаю вам отредактировать это поле, чтобы сделать его обнуляемым:

ALTER TABLE `mTable` MODIFY `id_processo_padre` int(11) NULL;

Это позволит вам INSERT первого родителя верхнего уровня (или любого родителя верхнего уровня )

insert into mTable(record_name, self_fk, ...)
            values('processo prova', NULL, ...);
--                                   ^--^----------This

Проверьте сами:

Схема (MySQL) v5.7)

CREATE TABLE test
(
  id INT(6) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  parent_id INT(6) NULL,
  someData VARCHAR(255),
  FOREIGN KEY (parent_id) REFERENCES test(id)
);

INSERT INTO test VALUES (default, null, "parent"),
                        (default, 1, "child1_1"),
                        (default, 1, "child1_2"),
                        (default, 3, "child2_2");

Запрос № 1

SELECT t1.*, t2.someData AS "My parent's name" FROM test t1
LEFT JOIN test t2
ON t2.id = t1.parent_id
ORDER BY t1.id ASC;

Выход

| id  | parent_id | someData | My parent's name |
| --- | --------- | -------- | ---------------- |
| 1   | null      | parent   | null             |
| 2   | 1         | child1_1 | parent           |
| 3   | 1         | child1_2 | parent           |
| 4   | 3         | child2_2 | child1_2         |

Просмотр базы данных Fiddle

0
ответ дан Cid 16 January 2019 в 18:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: