Это не имеет ничего общего с настройками браузера, если вы пытаетесь открыть новую вкладку из пользовательской функции.
На этой странице откройте консоль JavaScript и введите:
document.getElementById("nav-questions").setAttribute("target", "_blank");
document.getElementById("nav-questions").click();
И он попытается открыть всплывающее окно независимо от ваших настроек, потому что «щелчок» происходит из пользовательского действия.
Чтобы вести себя как фактический «щелчок мышью» по ссылке, вы нужно следовать рекомендациям @ spirinvladimir и really создать его:
document.getElementById("nav-questions").setAttribute("target", "_blank");
document.getElementById("nav-questions").dispatchEvent((function(e){
e.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0,
false, false, false, false, 0, null);
return e
}(document.createEvent('MouseEvents'))));
Вот полный пример (не пробуйте его на jsFiddle или аналогичные онлайн-редакторы, поскольку он не позволит вам перенаправлять на внешние страницы):
Go to Google
Click me to trigger custom click
PRAGMA INDEX_LIST('table_name');
Returns a table with 3 columns:
seq
Unique numeric ID of indexname
Name of the indexunique
Uniqueness flag (nonzero if UNIQUE
index.)Edit
Since SQLite 3.16.0 you can also use table-valued pragma functions which have the advantage that you can JOIN
them to search for a specific table and column. See @mike-scotty's answer.
Начиная ни с кого придумал хороший ответ, я думаю, что лучшее решение - это:
UNIQUE Иначе, ищите УНИКАЛЬНОЕ ключевое слово в sql столбце в таблице sqlite_master с чем-то вроде этого:
ВЫБОР * ОТ sqlite_master, ГДЕ тип = 'индекс' И sql КАК '%UNIQUE %'
можно программно создать избранный оператор, чтобы видеть, указывают ли какие-либо кортежи больше чем на одну строку. Если Вы возвращаете три столбца, нечто, панель и baz, создаете следующий запрос
select count(*) from t
group by foo, bar, baz
having count(*) > 1
, Если это возвращает какие-либо строки, Ваш индекс не уникален, так как больше чем одна строка отображается на данный кортеж. Если sqlite3 поддерживает полученные таблицы (у меня должна все же быть потребность, таким образом, я не знаю бесцеремонно), можно сделать это еще более сжатым:
select count(*) from (
select count(*) from t
group by foo, bar, baz
having count(*) > 1
)
Это возвратит набор результатов одной строки, обозначая количество дублирующихся наборов кортежа. Если положительный, Ваш индекс не уникален.
Вы близки:
1), Если индекс запускается с "sqlite_autoindex"
, это - автоматически сгенерированный индекс для первичного ключа. Однако это будет в sqlite_master
или sqlite_temp_master
таблицы, зависящие в зависимости от того, является ли индексируемая таблица временной.
2) необходимо не упустить имена таблиц и столбцы, которые содержат подстроку unique
, таким образом, Вы хотите использовать:
SELECT * FROM sqlite_master WHERE type = 'index' AND sql LIKE 'CREATE UNIQUE INDEX%'
Видят, что sqlite документация веб-сайта относительно Создает Индекс